aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2018-01-31 22:16:45 -0800
committerZac Medico <zmedico@gentoo.org>2018-01-31 22:16:45 -0800
commit52d5d444ffb144911ca9b6e70b383405a8bd8af6 (patch)
treef60e2aa0958342320569aa7383a0c3469a7e17ee
parentemerge-webrsync: uses gpg --status-fd (diff)
downloadportage-52d5d444ffb144911ca9b6e70b383405a8bd8af6.tar.gz
portage-52d5d444ffb144911ca9b6e70b383405a8bd8af6.tar.bz2
portage-52d5d444ffb144911ca9b6e70b383405a8bd8af6.zip
emerge-delta-webrsync: uses gpg --status-fd
-rwxr-xr-xmisc/emerge-delta-webrsync11
1 files changed, 10 insertions, 1 deletions
diff --git a/misc/emerge-delta-webrsync b/misc/emerge-delta-webrsync
index f2dc8220c..868c6a347 100755
--- a/misc/emerge-delta-webrsync
+++ b/misc/emerge-delta-webrsync
@@ -267,13 +267,22 @@ check_file_signature() {
local signature="$1"
local file="$2"
local r=1
+ local gnupg_status line
if [[ ${WEBSYNC_VERIFY_SIGNATURE} != 0 ]] ; then
__vecho "Checking signature ..."
if type -P gpg > /dev/null; then
- gpg --homedir "${PORTAGE_GPG_DIR}" --verify "$signature" "$file" && r=0
+ if gnupg_status=$(gpg --homedir "${PORTAGE_GPG_DIR}" --batch \
+ --status-fd 1 --verify "${signature}" "${file}"); then
+ while read -r line; do
+ if [[ ${line} == "[GNUPG:] GOODSIG"* ]]; then
+ r=0
+ break
+ fi
+ done <<< "${gnupg_status}"
+ fi
else
eecho "cannot check signature: gpg binary not found"
exit 1