[scripts][fuzzing] Strip whitespace for fx fuzz args

The fuzzer name was getting passed as ' ' and failing to match any
fuzzers.

Bug: SEC-300
Test: fx run-host-test host_fuzzers_test
Change-Id: I72f30d28e5be18e97de054fd12870de0609830f1
diff --git a/tools/devshell/contrib/fuzz b/tools/devshell/contrib/fuzz
index cc8b9e1..b50d205 100755
--- a/tools/devshell/contrib/fuzz
+++ b/tools/devshell/contrib/fuzz
@@ -62,74 +62,72 @@
 FUZZING_DIR=${FUCHSIA_DIR}/scripts/fuzzing
 
 cmd=
-while [[ -n "$1" ]] ; do
-  case "$1" in
-    -h|--help)
+add=0
+for arg in "$@"; do
+  shift
+  case "$arg" in
+    -h)
       cmd="help"
       ;;
     -d|--device|-o|--output|-s|--staging)
-      if [[ -z "$2" ]] ; then
-        echo "Missing argument to $1"
-        cmd="help"
-      else
-        opts="$opts $1 $2"
-      fi
-      shift
+      add=2
       ;;
     -f|--foreground|-n|--no-cipd)
-      opts="$opts $1"
+      add=1
       ;;
     -*)
       echo "Unknown option: $1"
       cmd="help"
       ;;
     *)
-      if [[ -z "$cmd" ]] ; then
-        cmd="$1"
+      if [[ -z "$cmd" ]] && [[ $add -eq 0 ]]; then
+        cmd="$arg"
       else
-        args="$args $1"
+        add=1
       fi
       ;;
   esac
-  shift
+  [[ "$cmd" = "help" ]] && break
+  [[ $add -eq 0 ]] && continue
+  set -- "$@" "$arg"
+  add=$(($add - 1))
 done
 
-
-case "${cmd}" in
+case "$cmd" in
   help)
     fx-command-help
     ;;
   list)
-    python ${FUZZING_DIR}/list_fuzzers.py "$opts $args"
+    python ${FUZZING_DIR}/list_fuzzers.py "$@"
     ;;
   corpus)
-    python ${FUZZING_DIR}/list_corpora.py "$opts $args"
+    python ${FUZZING_DIR}/list_corpora.py "$@"
     ;;
   fetch)
-    python ${FUZZING_DIR}/fetch_corpus.py "$opts $args"
+    python ${FUZZING_DIR}/fetch_corpus.py "$@"
     ;;
   start)
-    python ${FUZZING_DIR}/start_fuzzer.py "$opts $args" &
+    python ${FUZZING_DIR}/start_fuzzer.py "$@" &
     ;;
   check)
-    python ${FUZZING_DIR}/check_fuzzer.py "$opts $args"
+    python ${FUZZING_DIR}/check_fuzzer.py "$@"
     ;;
   stop)
-    python ${FUZZING_DIR}/stop_fuzzer.py "$opts $args"
+    python ${FUZZING_DIR}/stop_fuzzer.py "$@"
     ;;
   repro)
-    python ${FUZZING_DIR}/repro_units.py "$opts $args"
+    python ${FUZZING_DIR}/repro_units.py "$@"
     ;;
   merge)
-    python ${FUZZING_DIR}/merge_corpus.py "$opts $args"
+    python ${FUZZING_DIR}/merge_corpus.py "$@"
     ;;
   store)
-    python ${FUZZING_DIR}/store_corpus.py "$opts $args"
+    python ${FUZZING_DIR}/store_corpus.py "$@"
     ;;
   *)
     name="$cmd"
-    if python ${FUZZING_DIR}/list_fuzzers.py "$opts $name" ; then
-      python ${FUZZING_DIR}/start_fuzzer.py "$opts $name $args" &
+    if python ${FUZZING_DIR}/list_fuzzers.py "$name" ; then
+      python ${FUZZING_DIR}/start_fuzzer.py "$name" "$@" &
     else
       fx-command-help
     fi