|
|
61a679 |
#!/bin/sh
|
|
|
61a679 |
|
|
|
61a679 |
# init vars
|
|
|
61a679 |
commit=$1; [ -z "$commit" ] && commit='HEAD'
|
|
|
61a679 |
blank=
|
|
|
61a679 |
bline=
|
|
|
61a679 |
fname=
|
|
|
61a679 |
|
|
|
61a679 |
# source.patch
|
|
|
61a679 |
git format-patch -1 $commit --stdout > source.patch || exit 2
|
|
|
61a679 |
cat contrib.msg >> source.patch || exit 2
|
|
|
61a679 |
|
|
|
61a679 |
|
|
|
61a679 |
tail -n +2 source.patch > contrib.patch || exit 2
|
|
|
61a679 |
|
|
|
61a679 |
# contrib.patch: first blank line
|
|
|
61a679 |
blank=`grep -n ^$ contrib.patch | head -n1`
|
|
|
61a679 |
[ -z "$blank" ] && exit 2
|
|
|
61a679 |
|
|
|
61a679 |
bline=`echo $blank | cut -f1 -d':'`
|
|
|
61a679 |
[ -z "$bline" ] && exit 2
|
|
|
61a679 |
|
|
|
61a679 |
# use sha256sum of the above for patch file name
|
|
|
61a679 |
fname=`sha256sum contrib.patch | cut -f1 -d' '` || exit 2
|
|
|
61a679 |
[ -z "$fname" ] && exit 2
|
|
|
61a679 |
|
|
|
61a679 |
# prepare for submission, sign the patch
|
|
|
61a679 |
mv contrib.patch $fname.patch || exit 2
|
|
|
5eeff9 |
head -n$bline $fname.patch > $fname.sig || exit 2
|
|
|
61a679 |
|
|
|
61a679 |
[ -z "$PAGER" ] && PAGER='less'
|
|
|
61a679 |
$PAGER $fname.patch || exit 2
|
|
|
61a679 |
cat contrib.msg || exit 2
|
|
|
61a679 |
|
|
|
61a679 |
echo
|
|
|
61a679 |
echo 'press <enter> to continue, <ctrl-c> to abort>'
|
|
|
61a679 |
echo
|
|
|
61a679 |
|
|
|
61a679 |
read enter
|
|
|
61a679 |
|
|
|
61a679 |
gpg --armor --detach-sign $fname.patch || exit 2
|
|
|
61a679 |
cat $fname.patch.asc >> $fname.sig || exit 2
|
|
|
61a679 |
|
|
|
61a679 |
# verify
|
|
|
61a679 |
gpg --verify $fname.sig $fname.patch || exit 2
|
|
|
61a679 |
|
|
|
61a679 |
# clean up
|
|
|
61a679 |
rm source.patch
|
|
|
61a679 |
rm $fname.patch.asc
|
|
|
61a679 |
|
|
|
61a679 |
# info
|
|
|
61a679 |
echo
|
|
|
61a679 |
echo "commit $commit was successfully prepared for submission."
|
|
|
61a679 |
echo "$fname.patch: a patch file that can be imported by git-am."
|
|
|
61a679 |
echo "$fname.sig: a gpg signature file of the above patch."
|
|
|
61a679 |
echo
|
|
|
61a679 |
|
|
|
61a679 |
# all done
|
|
|
61a679 |
exit 0
|