Meta/RelSign: optionally use existing agent

todo
Junio C Hamano 2022-10-10 14:35:42 -07:00
parent eee9bb7e05
commit fa45c35b15
1 changed files with 29 additions and 17 deletions

18
RelSign
View File

@ -1,6 +1,12 @@
#!/bin/sh

# Use agent
if test "${GPG_TTY+set}" = set
then
WE_STARTED_AGENT=no
echo >&2 Reusing existing agent
else
WE_STARTED_AGENT=yes

GPG_TTY=$(tty) &&
export GPG_TTY &&

@ -8,13 +14,16 @@ if AGENT=$(gpg-agent --daemon 2>/dev/null)
then
eval "$AGENT" &&
GPG_AGENT_PID=$(expr "$GPG_AGENT_INFO" : ".*:\([1-9][0-9]*\):[1-9][0-9]*$") &&
trap 'kill -0 2>/dev/null $GPG_AGENT_PID && kill $GPG_AGENT_PID' 0 1 2 3 15 &&
trap 'kill -0 2>/dev/null $GPG_AGENT_PID &&
kill $GPG_AGENT_PID' 0 1 2 3 15 &&
kill -0 "$GPG_AGENT_PID"
else
# agent is always on
gpgconf --kill gpg-agent
GPG_AGENT_PID=
fi &&
fi || exit
fi

gpg="gpg --use-agent --local-user 96AFE6CB!" || exit

formats='htmldocs manpages'
@ -114,9 +123,12 @@ do
report "$version"
done

if test "$WE_STARTED_AGENT" = yes
then
if test -n "$GPG_AGENT_PID"
then
kill "$GPG_AGENT_PID"
else
gpgconf --kill gpg-agent
fi
fi