]> git.ipfire.org Git - thirdparty/git.git/commitdiff
Meta/RelSign: optionally use existing agent
authorJunio C Hamano <gitster@pobox.com>
Mon, 10 Oct 2022 21:35:42 +0000 (14:35 -0700)
committerJunio C Hamano <gitster@pobox.com>
Mon, 10 Oct 2022 21:35:42 +0000 (14:35 -0700)
RelSign

diff --git a/RelSign b/RelSign
index 132413d7d295f111d719b492f03cc08eaa85e3fb..c7d6ce3177375582af78daa889420e46f05b7410 100755 (executable)
--- 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