[pacman-dev] [PATCH 3/7] repo-add: only update database if entire command succeeded
It is not hard to think of situations where the repo database should not be updated unless the whole operation succeeds. Error out before a partial database update occurs. Signed-off-by: Allan McRae <allan@archlinux.org> --- scripts/repo-add.sh.in | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/repo-add.sh.in b/scripts/repo-add.sh.in index 2d9b262..d496354 100644 --- a/scripts/repo-add.sh.in +++ b/scripts/repo-add.sh.in @@ -688,7 +688,6 @@ trap 'trap_exit "$(gettext "Aborted by user! Exiting...")"' INT trap 'trap_exit "$(gettext "An unknown error has occurred. Exiting...")"' ERR declare -a args -success=0 # parse arguments while (( $# )); do case $1 in @@ -737,15 +736,16 @@ if (( SIGN || KEY || VERIFY )); then check_gpg fi +fail=0 for arg in "${args[@]:1}"; do case $cmd in repo-add) add "$arg" ;; repo-remove) remove "$arg" ;; - esac && success=1 + esac || fail=1 done -# if at least one operation was a success, re-zip database -if (( success )); then +# if the whole operation was a success, re-zip and rotate database +if (( !fail )); then msg "$(gettext "Creating updated database file '%s'")" "$REPO_DB_FILE" create_db rotate_db -- 2.3.3
participants (1)
-
Allan McRae