summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2022-10-10 14:35:42 -0700
committerJunio C Hamano <gitster@pobox.com>2022-10-10 14:35:42 -0700
commitfa45c35b151d7dba1e887fb9d051f435562d9397 (patch)
treed0d9b6ed7b6c80c17a72fc5d8bad86eda29d44c5
parenteee9bb7e054c755a0799370ac3eeef4ea848d8b2 (diff)
downloadgit-fa45c35b151d7dba1e887fb9d051f435562d9397.tar.gz
Meta/RelSign: optionally use existing agent
-rwxr-xr-xRelSign46
1 files changed, 29 insertions, 17 deletions
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