blob: 7aaef96e1e001ab7e2d66ca7f9a9565554b73c64 [file] [log] [blame]
#!/bin/sh
#
# Sign an arbitrary number of files using a transient GPG agent
#
unset GPG_AGENT_INFO
eval $(gpg-agent --daemon --quiet --no-use-standard-socket --keep-tty --keep-display --sh)
if [ x"$1" = x'-u' ]; then
gpg_opt="-u $2"
shift 2
fi
for f; do
fbare=$(echo "$f" | sed -e 's/\.[^./]*$//')
case "$f" in
*.gz)
gzip -cd -- "$f" | gpg $gpg_opt --use-agent -a -b -o "$fbare".sign \
--set-filename "$(basename "$fbare")" -
;;
*.bz2)
bzip2 -cd -- "$f" | gpg $gpg_opt --use-agent -a -b -o "$fbare".sign \
--set-filename "$(basename "$fbare")" -
;;
*.xz)
xz -cd -- "$f" | gpg $gpg_opt --use-agent -a -b -o "$fbare".sign \
--set-filename "$(basename "$fbare")" -
;;
*)
gpg $gpg_opt --use-agent -a -b -o "$f".sign \
--set-filename "$(basename "$f")" - < "$f"
;;
esac
done
# Kill the agent
kill $(gpg-connect-agent /subst /serverpid '/echo ${get serverpid}' /bye)