From 8a17bb928ae4f2cbb5530c53cb47da8d621929b9 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Sun, 15 Sep 2013 16:28:32 -0400 Subject: [PATCH] crash_sender: add support for command line options This lets us pass in custom env var settings w/out manipulating the environment. This makes execution a bit simpler in some cases. BUG=chromium:275910 TEST=`cbuildbot {arm,amd64,x86}-generic-full` works TEST=`crash_sender` on board works Change-Id: Icc32d7a179fee6a2e28d105d5790b2c55f12158b Reviewed-on: https://chromium-review.googlesource.com/169571 Reviewed-by: Ben Chan Commit-Queue: Mike Frysinger Tested-by: Mike Frysinger --- crash_reporter/crash_sender | 47 ++++++++++++++++++++++++++++++++++++- 1 file changed, 46 insertions(+), 1 deletion(-) diff --git a/crash_reporter/crash_sender b/crash_reporter/crash_sender index 723670126..458cb17c7 100755 --- a/crash_reporter/crash_sender +++ b/crash_reporter/crash_sender @@ -553,8 +553,53 @@ send_crashes() { done } +usage() { + cat <= Set env |var| to |val| (only some vars) +EOF + exit ${1:-1} +} + +parseargs() { + # Parse the command line arguments. + while [ $# -gt 0 ]; do + case $1 in + -e) + shift + case $1 in + FORCE_OFFICIAL=*|\ + MAX_CRASH_RATE=*|\ + MOCK_DEVELOPER_MODE=*|\ + OVERRIDE_PAUSE_SENDING=*|\ + SECONDS_SEND_SPREAD=*) + export "$1" + ;; + *) + lecho "Unknown var passed to -e: $1" + exit 1 + ;; + esac + ;; + -h) + usage 0 + ;; + *) + lecho "Uknown options: $*" + exit 1 + ;; + esac + shift + done +} + main() { trap cleanup EXIT INT TERM + + parseargs "$@" + if [ -e "${PAUSE_CRASH_SENDING}" ] && \ [ ${OVERRIDE_PAUSE_SENDING} -eq 0 ]; then lecho "Exiting early due to ${PAUSE_CRASH_SENDING}." @@ -593,5 +638,5 @@ if ! flock -n 9; then lecho "crash_sender is already running; quitting." exit 1 fi -main +main "$@" ) 9>"${CRASH_SENDER_LOCK}"