summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rw-r--r--scripts/repo-add.sh.in25
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"