copy-firmware: make script smarter about bad parameters

Two improvements to copy-firmware.sh that make it more friendly
when passed unknown or not exactly correct command-line parameters.

1) Don't fail with a weird error if there's a space between -j and
   the number.

2) Ignore any command-line unsupported parameters that start with
   a dash.  This is necessary because otherwise the script will
   assume the option is actually a destination directory, and then
   the "test" command will get confused.  Drawback is that we don't
   support any more destination directories that start with a dash,
   but no one does that.

Signed-off-by: Timur Tabi <ttabi@nvidia.com>
This commit is contained in:
Timur Tabi 2025-03-17 13:32:15 -05:00
parent 07ffc2005a
commit 142c0a7143

View File

@ -44,6 +44,7 @@ while test $# -gt 0; do
-j*) -j*)
num_jobs=$(echo "$1" | sed 's/-j//') num_jobs=$(echo "$1" | sed 's/-j//')
num_jobs=${num_jobs:-1}
if [ "$num_jobs" -gt 1 ] && ! has_gnu_parallel; then if [ "$num_jobs" -gt 1 ] && ! has_gnu_parallel; then
err "the GNU parallel command is required to use -j" err "the GNU parallel command is required to use -j"
fi fi
@ -76,6 +77,13 @@ while test $# -gt 0; do
exit 1 exit 1
;; ;;
-*)
# Ignore anything else that begins with - because that confuses
# the "test" command below
warn "ignoring option $1"
shift
;;
*) *)
if test -n "$destdir"; then if test -n "$destdir"; then
err "unknown command-line options: $*" err "unknown command-line options: $*"