]> git.ipfire.org Git - thirdparty/git.git/commitdiff
Meta/RelBuild: use gpg agent
authorJunio C Hamano <gitster@pobox.com>
Mon, 19 Aug 2013 20:38:14 +0000 (13:38 -0700)
committerJunio C Hamano <gitster@pobox.com>
Mon, 19 Aug 2013 20:38:14 +0000 (13:38 -0700)
With kup, the maintainer needs to sign multiple files.  Start gpg
agent and use it for a short while.

RelBuild

index e63811142ccf816c85b062b96da8b14009321aa7..5ced4f1d96e7cd5ebe01a07005361f4559dd9555 100755 (executable)
--- a/RelBuild
+++ b/RelBuild
@@ -1,16 +1,16 @@
 #!/bin/sh
 
+j="-j 8"
 version=$(git describe --exact) &&
 label=$(echo "$version" | sed -e 's|^v||') &&
 version=$(echo "$label" | sed -e 's|-|.|g') || exit
 
-make clean && make dist &&
+make clean && make $j dist &&
 
 ASCIIDOC_NO_ROFF=YesPlease \
 ASCIIDOC8=YesPlease \
 MAN_BASE_URL="git-htmldocs/" \
-make dist-doc || exit
-
+make $j dist-doc || exit
 # The above used to be
 # MAN_BASE_URL="http://www.kernel.org/pub/software/scm/git/docs/"
 
@@ -25,13 +25,23 @@ do
        test -f $file || exit
 done
 
-sha1sum $files | gpg --clearsign >git-$version.sign
+# Use agent
+GPG_TTY=$(tty) &&
+export GPG_TTY &&
+eval $(gpg-agent --daemon) &&
+GPG_AGENT_PID=$(expr "$GPG_AGENT_INFO" : ".*:\([1-9][0-9]*\):[1-9][0-9]*$") &&
+trap 'kill -0 $GPG_AGENT_PID && kill $GPG_AGENT_PID' 0 1 2 3 15 &&
+kill -0 "$GPG_AGENT_PID" &&
+gpg="gpg --use-agent" || exit
+
+sha1sum $files | $gpg --clearsign >git-$version.sign || exit
 
 for file in $files
 do
        gzip -dc <"$file" >"${file%.gz}" &&
-       gpg -b "${file%.gz}" &&
+       $gpg -b "${file%.gz}" &&
        rm "${file%.gz}" || exit
 done
 
+kill $GPG_AGENT_PID
 ls -l git-$version.sign $files git*-$version.tar.sig