#!/bin/sh
PGP='/^-----BEGIN PGP MESSAGE-----$/,/^-----END PGP MESSAGE-----$/'
COMMIT_GPGMSG="$(git rev-parse --git-dir)"/COMMIT_GPGMSG
GPGMSG="$(git rev-parse --git-dir)"/GPGMSG
git cat-file -p HEAD | sed -ne '1,/^$/p' | egrep '^tree |^parent ' > "$GPGMSG"

#if it's not valid, just drop it
git cat-file -p HEAD | grep -q '^-----BEGIN PGP MESSAGE-----$' &&
	git gpg-verify &&
	git cat-file -p HEAD | sed -ne "$PGP"p >> "$GPGMSG"
git cat-file -p HEAD | sed -e '1,/^$/d' | sed -e "$PGP"d > "$COMMIT_GPGMSG"
gpg --sign --armor -o - "$GPGMSG" >> "$COMMIT_GPGMSG"
git commit --amend -F "$COMMIT_GPGMSG" -e
