board_status: Allow for parsing longopts

This converts the argument parsing to allow us to add longopts
using GNU getopt(1).

Shortopts should be reserved for general parameters. Longopts can be
used to tweak specific behaviors. For example, we might wish to add
options to set SSH port, timeout, and authentication parameters
with "--ssh-port", "--ssh-timeout", "--ssh-identity", etc.

Change-Id: Idee5579079dbbb7296ad98f5d6025b01aab55452
Signed-off-by: David Hendricks <dhendrix@chromium.org>
Reviewed-on: https://review.coreboot.org/14523
Tested-by: build bot (Jenkins)
Reviewed-by: Jonathan Neuschäfer <j.neuschaefer@gmx.net>
This commit is contained in:
David Hendricks 2016-04-26 14:07:42 -07:00
parent fe0609dc3e
commit 292be87205
1 changed files with 39 additions and 13 deletions

View File

@ -188,31 +188,57 @@ Options
" "
} }
while getopts "Chi:r:s:S:u" opt; do getopt -T
case "$opt" in if [ $? -ne 4 ]; then
h) echo "GNU-compatible getopt(1) required."
exit $EXIT_FAILURE
fi
# TODO: add longopts in the quotes after -l
ARGS=$(getopt -o Chi:r:s:S:u -l "" -n "$0" -- "$@");
if [ $? != 0 ] ; then echo "Terminating..." >&2 ; exit 1 ; fi
eval set -- "$ARGS"
while true ; do
case "$1" in
-h)
show_help show_help
exit $EXIT_SUCCESS exit $EXIT_SUCCESS
;; ;;
C) -C)
CLOBBER_OUTPUT=1 CLOBBER_OUTPUT=1
;; ;;
i) -i)
COREBOOT_IMAGE="$OPTARG" shift
COREBOOT_IMAGE="$1"
;; ;;
r) -r)
REMOTE_HOST="$OPTARG" shift
REMOTE_HOST="$1"
;; ;;
s) -s)
SERIAL_DEVICE="$OPTARG" shift
SERIAL_DEVICE="$1"
;; ;;
S) -S)
SERIAL_PORT_SPEED="$OPTARG" shift
SERIAL_PORT_SPEED="$1"
;; ;;
u) -u)
UPLOAD_RESULTS=1 UPLOAD_RESULTS=1
;; ;;
--)
shift
if [ -n "$*" ]; then
echo "Non-option parameters detected: '$*'"
exit $EXIT_FAILURE
fi
break
;;
*)
echo "error processing options at '$1'"
exit $EXIT_FAILURE
esac esac
shift
done done
grep -rH 'coreboot.org' .git/config >/dev/null 2>&1 grep -rH 'coreboot.org' .git/config >/dev/null 2>&1