#!/bin/sh

die() {
	echo "$@"
	exit 1
}

PGP='/^-----BEGIN PGP MESSAGE-----$/,/^-----END PGP MESSAGE-----$/'
C="$1"
GPGMSG1="$(git rev-parse --git-dir)"/GPGMSG1
GPGMSG2="$(git rev-parse --git-dir)"/GPGMSG2
[ -n "$1" ] || C=HEAD
git cat-file commit $C > "$GPGMSG1"
while grep -q '^-----BEGIN PGP MESSAGE-----$' "$GPGMSG1";do
	[ -f "$GPGMSG2" ] && rm -f "$GPGMSG2"
	gpg -o "$GPGMSG2" "$GPGMSG1" || die "Failed to verify"
	mv "$GPGMSG2" "$GPGMSG1"
done
git cat-file commit $C | sed -ne '1,/^$/p' | egrep '^tree |^parent '|cmp -s "$GPGMSG1" || die "Failed to verify"
