diff options
author | Allan McRae <allan@archlinux.org> | 2015-01-23 15:16:55 +1000 |
---|---|---|
committer | Allan McRae <allan@archlinux.org> | 2015-02-12 13:35:19 +1000 |
commit | 3c464203673060e762102414290d857c5fc37944 (patch) | |
tree | 4f4d9ddd63005b2b372806b14da2a0956307eebf /scripts | |
parent | cf3d5e4830386b3848b64bcaf0d27564580595b1 (diff) |
repo-add: unify checking gpg keys
Move the PGP key checking into the check_gpg function. This also results in
error messages being in colour.
Signed-off-by: Allan McRae <allan@archlinux.org>
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/repo-add.sh.in | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/scripts/repo-add.sh.in b/scripts/repo-add.sh.in index db397100..183fa41f 100644 --- a/scripts/repo-add.sh.in +++ b/scripts/repo-add.sh.in @@ -34,6 +34,7 @@ ONLYADDNEW=0 RMEXISTING=0 WITHFILES=0 SIGN=0 +KEY=0 VERIFY=0 REPO_DB_FILE= LOCKFILE= @@ -198,6 +199,17 @@ check_gpg() { error "$(gettext "Cannot find the gpg binary! Is GnuPG installed?")" exit 1 # $E_MISSING_PROGRAM fi + + if (( ! VERIFY )); then + if ! gpg --list-key ${GPGKEY} &>/dev/null; then + if [[ ! -z $GPGKEY ]]; then + error "$(gettext "The key ${GPGKEY} does not exist in your keyring.")" + elif (( ! KEY )); then + error "$(gettext "There is no key in your keyring.")" + fi + exit 1 + fi + fi } # sign the package database once repackaged @@ -630,28 +642,14 @@ while (( $# )); do -f|--files) WITHFILES=1;; --nocolor) USE_COLOR='n';; -s|--sign) - check_gpg SIGN=1 - if ! gpg --list-key ${GPGKEY} &>/dev/null; then - if [[ ! -z $GPGKEY ]]; then - error "$(gettext "The key ${GPGKEY} does not exist in your keyring.")" - else - error "$(gettext "There is no key in your keyring.")" - fi - exit 1 - fi ;; -k|--key) - check_gpg + KEY=1 shift GPGKEY=$1 - if ! gpg --list-key ${GPGKEY} &>/dev/null; then - error "$(gettext "The key ${GPGKEY} does not exist in your keyring.")" - exit 1 - fi ;; -v|--verify) - check_gpg VERIFY=1 ;; *) @@ -678,6 +676,10 @@ fi verify_repo_extension "$REPO_DB_FILE" >/dev/null check_repo_db +if (( SIGN || KEY || VERIFY )); then + check_gpg +fi + for arg in "${args[@]:1}"; do case $cmd in repo-add) add "$arg" ;; |