Meta/RelSign: optionally use existing agent

This commit is contained in:
Junio C Hamano 2022-10-10 14:35:42 -07:00
parent eee9bb7e05
commit fa45c35b15

46
RelSign
View file

@ -1,20 +1,29 @@
#!/bin/sh
# Use agent
GPG_TTY=$(tty) &&
export GPG_TTY &&
if AGENT=$(gpg-agent --daemon 2>/dev/null)
if test "${GPG_TTY+set}" = set
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 &&
kill -0 "$GPG_AGENT_PID"
WE_STARTED_AGENT=no
echo >&2 Reusing existing agent
else
# agent is always on
gpgconf --kill gpg-agent
GPG_AGENT_PID=
fi &&
WE_STARTED_AGENT=yes
GPG_TTY=$(tty) &&
export GPG_TTY &&
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 &&
kill -0 "$GPG_AGENT_PID"
else
# agent is always on
gpgconf --kill gpg-agent
GPG_AGENT_PID=
fi || exit
fi
gpg="gpg --use-agent --local-user 96AFE6CB!" || exit
formats='htmldocs manpages'
@ -114,9 +123,12 @@ do
report "$version"
done
if test -n "$GPG_AGENT_PID"
if test "$WE_STARTED_AGENT" = yes
then
kill "$GPG_AGENT_PID"
else
gpgconf --kill gpg-agent
if test -n "$GPG_AGENT_PID"
then
kill "$GPG_AGENT_PID"
else
gpgconf --kill gpg-agent
fi
fi