diff --git a/RelSign b/RelSign index 132413d7d2..c7d6ce3177 100755 --- a/RelSign +++ b/RelSign @@ -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