From dcff2ddd3f856648487adfe95b4778961c8a4f59 Mon Sep 17 00:00:00 2001 From: Dave Reisner Date: Mon, 18 Jan 2010 00:05:59 -0500 Subject: Reimplement options using getopts --- squashfu | 43 ++++++++++++++++++++++++++++++++++--------- 1 file changed, 34 insertions(+), 9 deletions(-) diff --git a/squashfu b/squashfu index e6f376b..6c43084 100755 --- a/squashfu +++ b/squashfu @@ -358,7 +358,7 @@ usage () { cat < + squashfu ACTIONS -B @@ -383,13 +383,38 @@ HELP exit 0 } -case $1 in - "-B") action=backup ;; - "-C") action=resquash_now ;; - "-Q") action=report ;; - "-R") shift; action=rollback $1 ;; - "-U") unmount_all ;; - *) usage ;; -esac +[[ -z $1 ]] && ( usage; exit 1; ) + +while getopts :BCQR:U opt; do + case $opt in + B) + action=backup + ;; + C) + action=resquash_now + ;; + Q) + action=report + ;; + R) + action="rollback $OPTARG" + ;; + U) + unmount_all + exit 0 + ;; + c) + [[ -f $OPTARG ]] && source $OPTARG + ;; + \:) + echo "Argument missing from -$OPTARG" + usage ;; + \?) + echo "Unrecognized option -$OPTARG" + usage ;; + esac >&2 +done + +[[ -z $action ]] && ( usage; exit 1; ) action_$action -- cgit v1.2.3