diff options
author | Dave Reisner <d@falconindy.com> | 2011-06-22 22:26:55 +0200 |
---|---|---|
committer | Dave Reisner <dreisner@archlinux.org> | 2011-06-27 19:39:02 +0200 |
commit | 122b4c218785a89dcf6e1a335f6083aa166d4cdb (patch) | |
tree | a861053a34a5d975ce2894d8ec12986e5d581898 | |
parent | 6f5a90edb39cdd7e5e3faa7acdbaad288876f9da (diff) | |
download | pacman-122b4c218785a89dcf6e1a335f6083aa166d4cdb.tar.gz pacman-122b4c218785a89dcf6e1a335f6083aa166d4cdb.tar.xz |
repo-add: move command invocation out of arg parsing loop
Signed-off-by: Dave Reisner <d@falconindy.com>
-rw-r--r-- | scripts/repo-add.sh.in | 25 |
1 files changed, 14 insertions, 11 deletions
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" |