[pacman-dev] [PATCH 3/7] repo-add: only update database if entire command succeeded
Allan McRae
allan at archlinux.org
Sun Mar 15 10:48:46 UTC 2015
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 at 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
More information about the pacman-dev
mailing list