1
0
mirror of https://github.com/moparisthebest/pacman synced 2024-12-21 23:38:49 -05:00

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>
This commit is contained in:
Allan McRae 2015-03-15 16:32:56 +10:00
parent d2cb52de12
commit 81d233b793

View File

@ -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