From aa600c8f9c21d92dc0065692a0c9c06b885e41cb Mon Sep 17 00:00:00 2001 From: unknown author <cooker@mandrivalinux.org> Date: Mon, 5 Jan 2009 13:29:57 +0000 Subject: [PATCH 01/36] gendiff improved --- scripts/gendiff | 49 ++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 40 insertions(+), 9 deletions(-) diff --git a/scripts/gendiff b/scripts/gendiff index d9b0c21..ea9d190 100644 --- a/scripts/gendiff +++ b/scripts/gendiff @@ -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} : ${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 -- 1.6.4.4