phase1: enforce proper umask during signing
[buildbot.git] / phase1 / signall.sh
1 #!/usr/bin/env bash
2
3 tarball="$1"
4 keyid="$2"
5 passfile="$3"
6 comment="$4"
7
8 tmpdir="signall.$$"
9 tarball="$(readlink -f "$tarball")"
10
11 finish() { rm -rf "$tmpdir"; exit $1; }
12
13 trap "finish 255" HUP INT TERM
14
15 if [ ! -f "$tarball" ]; then
16 echo "Usage: $0 <tarball> [<keyid> [<passfile> [<comment>]]]"
17 finish 1
18 fi
19
20 umask 022
21
22 mkdir "$tmpdir" || finish 2
23 tar -C "$tmpdir/" -xzf "$tarball" || finish 3
24 find "$tmpdir/" -type f -not -name "*.gpg" -exec gpg --no-version --batch --yes -a -b ${keyid:+-u "$keyid"} ${comment:+--comment="$comment"} ${passfile:+--passphrase-file "$passfile"} -o "{}.gpg" "{}" \; || finish 4
25 tar -C "$tmpdir/" -czf "$tarball" . || finish 5
26
27 finish 0