#!/bin/sh
# Extract names of new files from a patch, print them out

PATCHFILE=$1
case "$PATCHFILE" in
*.gz) CMD="gzip -d < $PATCHFILE";;
*)    CMD="cat $PATCHFILE";;
esac

TMP=$(mktemp /tmp/tbp-XXXXXX) || exit 1
TMP2=$(mktemp /tmp/tbp2-XXXXXX) || exit 1

eval $CMD | egrep '^\+\+\+ |^\-\-\- ' > $TMP

cat $TMP | sed -e 's@[^/]*/\([^ 	]*\).*@\1@' \
	 | grep -v '^dev\/null$' \
	 | sort \
	 | uniq \
	 > $TMP2

rm -f $TMP
grep < $TMP2 '^[+][+][+]' > /dev/null
if [ "$?" = "0" ]
then
	echo "WARNING: $PATCHFILE appears to be -p0 form rather than -p1." 1>&2
	echo "         Use "\'"p0-2-p1 . . < $PATCHFILE"\'" to fix" 1>&2
	awk '{ print $2 }' < $TMP2
else
	cat $TMP2
fi | grep -v '~'

rm -f $TMP2
