From fec10d4a65ebfdcac1f0e3dec9e24c1fe67bb52a Mon Sep 17 00:00:00 2001 From: Allan McRae Date: Sat, 9 Jul 2011 11:28:57 +1000 Subject: pacman-key: check only a single operation has been specified Follow the example of gpg and only allow a single operation to be specified each time. Prevents having to deal with conflicting variable names and potential issues due to the order in which the operations are run. Signed-off-by: Allan McRae --- scripts/pacman-key.sh.in | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/scripts/pacman-key.sh.in b/scripts/pacman-key.sh.in index 4366ca45..776fc0e9 100644 --- a/scripts/pacman-key.sh.in +++ b/scripts/pacman-key.sh.in @@ -308,6 +308,22 @@ PACMAN_KEYRING_DIR=${PACMAN_KEYRING_DIR:-@sysconfdir@/pacman.d/gnupg} GPG_PACMAN="gpg --homedir ${PACMAN_KEYRING_DIR} --no-permission-warning" +# check only a single operation has been given +numopt=$(( ADD + DELETE + EDITKEY + EXPORT + FINGER + LIST + RECEIVE + RELOAD + UPDATEBD )) + +if (( ! numopt )); then + error "$(gettext "No operations specified")" + echo + usage + exit 1 +fi + +if (( numopt != 1 )); then + error "$(gettext "Multiple operations specified")" + printf "$(gettext "Please run %s with each operation separately\n")" "pacman-key" + exit 1 +fi + (( ADD )) && ${GPG_PACMAN} --quiet --batch --import "${KEYFILES[@]}" (( DELETE )) && ${GPG_PACMAN} --quiet --batch --delete-key --yes "${KEYIDS[@]}" -- cgit v1.2.3-24-g4f1b