diff options
Diffstat (limited to 'scripts')
-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" |