From: Dave Reisner <d@falconindy.com> Signed-off-by: Dave Reisner <d@falconindy.com> --- 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