--- rpm-4.4.2.2/scripts/gendiff.pix 2007-09-11 08:28:15.000000000 +0200 +++ rpm-4.4.2.2/scripts/gendiff 2007-10-19 14:55:00.000000000 +0200 @@ -1,24 +1,55 @@ #!/bin/sh -[ -z "$1" -o -z "$2" ] && { -# usage +function usage () { echo "usage: $0 <directory> <diff-extension>" 1>&2 exit 1 } -: ${DIFF:=diff} +: ${DIFF:=diff -p} : ${GENDIFF_DIFF_ARGS:=-up} : ${GENDIFF_DIFF_CHANGELOG_ARGS:=-U0} -find $1 \( -name "*$2" -o -name ".*$2" \) -print | sort | +if [ "$1" = "-p" -a -z "$3" ];then + echo "With -p you need to give the definition of patch (like dummy)" + exit 1 +fi + +if [ "$1" = "-p" ];then + DEFAULT_PATCH="$2" + shift; + shift; +fi + +[ -z "$1" ] && usage + +[ -z "$PATCH_PREFIX" -a -z "$2" ] && { + echo "usage: $0 <directory> <diff-extension>" 1>&2 + exit 1 +} + +if [ -n "$DEFAULT_PATCH" -a "$RPM" ];then + FILEPATCH="$RPM/SOURCES/$(echo $1|sed 's@/@@g')-$DEFAULT_PATCH.patch" + [ -f $FILEPATCH ] && mv -f $FILEPATCH $FILEPATCH.old +fi + +[ -n "$2" ] && PATCH_PREFIX=$2 + +find $1 \( -name "*$PATCH_PREFIX" -o -name ".*$PATCH_PREFIX" \) -print | sort | while read f; do U="${GENDIFF_DIFF_ARGS}" [ "`basename $f`" = "ChangeLog$2" ] && U="${GENDIFF_DIFF_CHANGELOG_ARGS}" - diffcmd="${DIFF} ${U} /dev/null ${f%$2}" -# ${DIFF} ${U} $f `echo $f | sed s/$2\$//` + if [ -r "$f" ]; then - diffcmd="${DIFF} ${U} ${f} ${f%$2}" - fi + from="$f" + else + from="/dev/null" + fi + diffcmd="${DIFF} ${U} $from ${f%$PATCH_PREFIX}" + echo "${diffcmd}" - ${diffcmd} + if [ -z "$DEFAULT_PATCH" ];then + ${diffcmd} + else + ${diffcmd} |tee -a $FILEPATCH + fi done