#!/bin/sh
# A script to format a SVN revision output in a manner that is easy to read.
# Stelian Pop <stelian@popies.net> 01/2005
# based on 'bksend' by Andreas Dilger <adilger@turbolabs.com>
#

PROG=svnsend
TMPFILE=`mktemp -t` || exit 1

usage() {
	echo "usage: $PROG <rev>"
	echo -e "\twhere <rev> is of the form '123', '123:125', '123:HEAD',"
	echo -e "\tor 'HEAD' to indicate the most recent revision"

	exit 1
}

REV=$1
[ -z "$REV" ] && usage

if [ "$REV" == "HEAD" ]; then
	svn update -q
	REV=`svnversion -n .`
fi

BIREV=`echo $REV | sed 's/.*:.*//'`
if [ ! -z "$BIREV" ]; then
	OLD=$REV
	NEW=$REV
	PREV=$((REV - 1))
else
	OLD=`echo $REV | sed 's/:.*//'`
	NEW=`echo $REV | sed 's/.*://'`
fi
PREV=`echo $((OLD - 1)):`

SEP="\n===================================================================\n"

echo -e $SEP

svn log -r $OLD:$NEW | \
	grep -v "^r.*|.*|.*$" | \
	grep -v -- "------------------------------------------------------------------------"

echo "Signed-off-by: Foo Bar <foo@bar.org>"

echo -e $SEP

svn diff -r ${PREV}${NEW} > $TMPFILE

cat $TMPFILE | diffstat

echo -e $SEP

cat $TMPFILE

rm -f $TMPFILE

