From: Dave Reisner <[email protected]>

Signed-off-by: Dave Reisner <[email protected]>
---
We shouldn't be insisting on an option order...

 commitpkg |   20 +++++++++++---------
 1 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/commitpkg b/commitpkg
index d37babf..1275615 100755
--- a/commitpkg
+++ b/commitpkg
@@ -98,15 +98,17 @@ done
 
 # see if any limit options were passed, we'll send them to rsync
 rsyncopts=(-e ssh -p --chmod=ug=rw,o=r -c -h -L --progress --partial -y)
-if [ "$1" = '-l' ]; then
-       rsyncopts+=("--bwlimit=$2")
-       shift 2
-fi
-
-if [ "$1" = "-a" ]; then
-       commit_arch=$2
-       shift 2
-fi
+while getopts ':l:a:' flag; do
+       case $flag in
+               l) rsyncopts+=("--bwlimit=$2") ;;
+               a) commit_arch=$2 ;;
+               :) echo "option requires an argument -- '$OPTARG'" >&2
+                       exit 1 ;;
+               \?) echo "invalid option -- '$OPTARG'" >&2
+                       exit 1 ;;
+       esac
+done
+shift $(( OPTIND - 1 ))
 
 if [ -n "$(svn status -q)" ]; then
        echo -n 'committing changes to trunk...'
-- 
1.7.6

Reply via email to