summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan McGee <dan@archlinux.org>2011-08-29 17:52:12 +0200
committerDan McGee <dan@archlinux.org>2011-08-30 02:55:28 +0200
commit8129b93afe13a6546f46c6615c316ed85f341191 (patch)
treef7aae9718dea334265a28e9c68334e5b47b87146
parente3676ae7b51fdaa68fcf2923c19681ec7d6f3952 (diff)
downloadpacman-8129b93afe13a6546f46c6615c316ed85f341191.tar.gz
pacman-8129b93afe13a6546f46c6615c316ed85f341191.tar.xz
pacman-key: fix broken logic around updating trust database
Any option that flips UPDATEDB=1 doesn't work right now due to what we thought was a good idea in commit cab1379a1ab14. Fix this by not including the update operation in the option count and special casing it where necessary. Also, bring back the helpful "Updating trust database" message. Signed-off-by: Dan McGee <dan@archlinux.org>
-rw-r--r--scripts/pacman-key.sh.in14
1 files changed, 10 insertions, 4 deletions
diff --git a/scripts/pacman-key.sh.in b/scripts/pacman-key.sh.in
index fb42f938..c200d8e4 100644
--- a/scripts/pacman-key.sh.in
+++ b/scripts/pacman-key.sh.in
@@ -396,13 +396,16 @@ PACMAN_KEYRING_DIR=${PACMAN_KEYRING_DIR:-$(get_from "$CONFIG" "GPGDir" || echo "
GPG_PACMAN=(gpg --homedir ${PACMAN_KEYRING_DIR} --no-permission-warning)
# check only a single operation has been given
+# don't include UPDATEDB in here as other opts can induce it
numopt=$(( ADD + DELETE + EDITKEY + EXPORT + FINGER + IMPORT + IMPORT_TRUSTDB +
- INIT + LISTKEYS + LISTSIGS + POPULATE + RECEIVE + UPDATEDB + VERIFY ))
+ INIT + LISTKEYS + LISTSIGS + POPULATE + RECEIVE + VERIFY ))
case $numopt in
0)
- error "$(gettext "no operation specified (use -h for help)")"
- exit 1
+ if (( ! UPDATEDB )); then
+ error "$(gettext "no operation specified (use -h for help)")"
+ exit 1
+ fi
;;
[!1])
error "$(gettext "Multiple operations specified")"
@@ -427,6 +430,9 @@ esac
(( RECEIVE )) && receive_keys
(( VERIFY )) && "${GPG_PACMAN[@]}" --verify $SIGNATURE
-(( UPDATEDB )) && "${GPG_PACMAN[@]}" --batch --check-trustdb
+if (( UPDATEDB )); then
+ msg "$(gettext "Updating trust database...")"
+ "${GPG_PACMAN[@]}" --batch --check-trustdb
+fi
# vim: set ts=2 sw=2 noet: