From 122b4c218785a89dcf6e1a335f6083aa166d4cdb Mon Sep 17 00:00:00 2001 From: Dave Reisner Date: Wed, 22 Jun 2011 16:26:55 -0400 Subject: repo-add: move command invocation out of arg parsing loop Signed-off-by: Dave Reisner --- scripts/repo-add.sh.in | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) (limited to 'scripts/repo-add.sh.in') diff --git a/scripts/repo-add.sh.in b/scripts/repo-add.sh.in index e7a4be40..6d09f0a3 100644 --- a/scripts/repo-add.sh.in +++ b/scripts/repo-add.sh.in @@ -531,9 +531,10 @@ trap 'trap_exit "$(gettext "TERM signal caught. Exiting...")"' TERM HUP QUIT trap 'trap_exit "$(gettext "Aborted by user! Exiting...")"' INT trap 'trap_exit "$(gettext "An unknown error has occured. Exiting...")"' ERR +declare -a args success=0 # parse arguments -while [[ $# > 0 ]]; do +while (( $# )); do case "$1" in -q|--quiet) QUIET=1;; -d|--delta) DELTA=1;; @@ -564,21 +565,23 @@ while [[ $# > 0 ]]; do VERIFY=1 ;; *) - if [[ -z $REPO_DB_FILE ]]; then - REPO_DB_FILE="$1" - LOCKFILE="$REPO_DB_FILE.lck" - check_repo_db - else - case "$cmd" in - repo-add) add $1 && success=1 ;; - repo-remove) remove $1 && success=1 ;; - esac - fi + args+=("$1") ;; esac shift done +REPO_DB_FILE=${args[0]} +LOCKFILE=$REPO_DB_FILE.lck +check_repo_db + +for arg in "${args[@]:1}"; do + case "$cmd" in + repo-add) add "$arg" ;; + repo-remove) remove "$arg" ;; + esac && success=1 +done + # if at least one operation was a success, re-zip database if (( success )); then msg "$(gettext "Creating updated database file '%s'")" "$REPO_DB_FILE" -- cgit v1.2.3-24-g4f1b