summaryrefslogtreecommitdiffstats
path: root/abuild-sign.in
diff options
context:
space:
mode:
Diffstat (limited to 'abuild-sign.in')
-rw-r--r--abuild-sign.in26
1 files changed, 17 insertions, 9 deletions
diff --git a/abuild-sign.in b/abuild-sign.in
index 5067a74..2aa525e 100644
--- a/abuild-sign.in
+++ b/abuild-sign.in
@@ -22,11 +22,11 @@ die() {
usage() {
echo "abuild-sign $abuild_ver"
- echo "usage: abuild-sign [-h] [-k PRIVKEY] [-p PUBKEY] INDEXFILE..."
+ echo "usage: abuild-sign [-hq] [-k PRIVKEY] [-p PUBKEY] INDEXFILE..."
echo "options:"
- echo " -h Show this help"
- echo " -k The private key to use for signing"
- echo " -p The name of public key. apk add will look for /etc/apk/keys/PUBKEY"
+ echo " -h Show this help"
+ echo " -k The private key to use for signing"
+ echo " -p The name of public key. apk add will look for /etc/apk/keys/PUBKEY"
exit 1
}
@@ -38,11 +38,12 @@ usage() {
privkey="$PACKAGER_PRIVKEY"
-while getopts "hk:p:" opt; do
+while getopts "hk:p:q" opt; do
case $opt in
h) usage;;
k) privkey=$OPTARG;;
p) pubkey=$OPTARG;;
+ q) quiet=yes;;
esac
done
shift $(( $OPTIND - 1))
@@ -51,6 +52,7 @@ if [ -z "$privkey" ]; then
echo "No private key found. Use 'abuild-keygen' to generate the keys"
echo "Then you can either:"
echo " 1. set the PACKAGER_PRIVKEY in $abuild_userconf"
+ echo " (Note that 'abuild-keygen -a' does this for you)"
echo " 2. set the PACKAGER_PRIVKEY in $abuild_conf"
echo " 3. specify the key with the -k option"
echo ""
@@ -72,9 +74,15 @@ for f in "$@"; do
sig=".SIGN.RSA.$keyname"
openssl dgst -sha1 -sign "$privkey" -out "$sig" "$i" || die "Failed to sign $i"
cd "$repo"
- tar -c "$sig" | abuild-tar --cut | gzip -9 > signature.tar.gz
- cat signature.tar.gz "$i" > "$i.new"
- mv "$i.new" "$i"
- echo "Signed $i"
+ tmptargz=$(mktemp)
+ tar -c "$sig" | abuild-tar --cut | gzip -9 > "$tmptargz"
+ tmpsigned=$(mktemp)
+ cat "$tmptargz" "$i" > "$tmpsigned"
+ rm -f "$tmptargz"
+ mv "$tmpsigned" "$i"
+ if [ -z "$quiet" ]; then
+ echo "Signed $i"
+ fi
done
+exit 0