commit:     25accafd2e792b338dd9bc2cbeb5fdd3232062a1
Author:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
AuthorDate: Sat May 25 15:51:29 2019 +0000
Commit:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
CommitDate: Sat May 25 15:51:29 2019 +0000
URL:        https://gitweb.gentoo.org/proj/portage-utils.git/commit/?id=25accafd

tests/qmanifest: try and work with old gpg

Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org>

 tests/qmanifest/dotest | 28 +++++++++++++++++++++-------
 1 file changed, 21 insertions(+), 7 deletions(-)

diff --git a/tests/qmanifest/dotest b/tests/qmanifest/dotest
index 549223b..a6b1431 100755
--- a/tests/qmanifest/dotest
+++ b/tests/qmanifest/dotest
@@ -50,14 +50,28 @@ mkdir "${HOME}"/.gnupg
 # silence gpg warnings
 chmod -R og-rwx "${HOME}"/.gnupg
 
+gpg_import() {
+       local key=$1
+       local pass=$2
+       local args=(
+               --batch
+               --quiet
+               --no-tty
+               --passphrase-fd 0
+               --import "${key}"
+       )
+       local killpinentry="--pinentry-mode loopback"
+
+       # see if gpg is new enough for killpinentry
+       echo "${pass}" | gpg -n ${killpinentry} "${args[@]}"
+       if [[ $? -ne 0 ]] ; then
+               echo "${pass}" | gpg "${args[@]}"
+       else
+               echo "${pass}" | gpg ${killpinentry} "${args[@]}"
+       fi
+}
 # import key and sanity check
-echo qmanifest | gpg \
-       --batch \
-       --quiet \
-       --no-tty \
-       --passphrase-fd 0 \
-       --pinentry-mode loopback \
-       --import "${as}"/key.gpg
+gpg_import "${as}"/key.gpg qmanifest
 test p6 0 "gpg --list-keys | sed '1,2d'"
 
 # make it a fully valid tree

Reply via email to