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

46
RelSign
View File

@ -1,20 +1,29 @@
#!/bin/sh #!/bin/sh


# Use agent if test "${GPG_TTY+set}" = set
GPG_TTY=$(tty) &&
export GPG_TTY &&

if AGENT=$(gpg-agent --daemon 2>/dev/null)
then then
eval "$AGENT" && WE_STARTED_AGENT=no
GPG_AGENT_PID=$(expr "$GPG_AGENT_INFO" : ".*:\([1-9][0-9]*\):[1-9][0-9]*$") && echo >&2 Reusing existing agent
trap 'kill -0 2>/dev/null $GPG_AGENT_PID && kill $GPG_AGENT_PID' 0 1 2 3 15 &&
kill -0 "$GPG_AGENT_PID"
else else
# agent is always on WE_STARTED_AGENT=yes
gpgconf --kill gpg-agent
GPG_AGENT_PID= GPG_TTY=$(tty) &&
fi && 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 gpg="gpg --use-agent --local-user 96AFE6CB!" || exit


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


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