Whamcloud - gitweb
LU-1330 obdclass: splits server-side object stack from client
[fs/lustre-release.git] / build / clearpatches.sh
old mode 100644 (file)
new mode 100755 (executable)
index a0f5741..3731839
@@ -1,13 +1,26 @@
+#!/bin/bash
+PROG=$(basename $0)
+[ "$1" = "-h" -o "$1" = "--help" ] && echo "usage: $PROG [patch dir]" && exit 0
+[ "$1" = "-d" ] && shift && DELETE="git rm" || DELETE="echo Unused"
+[ "$1" = "-v" ] && shift && VERBOSE="echo Checking" || VERBOSE=":"
+
+[ "$1" ] && BASEDIR="$1"
 BASEDIR=${BASEDIR:-lustre/kernel_patches}
 SERIESPATH=${SERIESPATH:-$BASEDIR/series}
-PATCHESPATH=${PATCHESPATH:-$BASEDIR/patches}
-NOUSEPATH=${NOUSEPATH:-$BASEDIR/unused}
+PATCHPATH=${PATCHPATH:-$BASEDIR/patches}
+
+[ ! -d "$BASEDIR" ] && echo "$PROG: missing base directory '$BASEDIR'" && exit 1
+[ ! -d "$SERIESPATH" ] && echo "$PROG: missing series '$SERIESPATH'" && exit 2
+[ ! -d "$PATCHPATH" ] && echo "$PROG: missing patches '$PATCHPATH'" && exit 3
 
-#mkdir -p $NOUSEPATH
-for PATCH in `ls $PATCHESPATH | grep -v CVS` ; do
-       #echo $PATCH
-       if ! grep -rq $PATCH $SERIESPATH ; then
-               echo "$PATCH"
-               #mv $PATCHESPATH/$PATCH $NOUSEPATH
+CANONICAL_SERIESPATH=$(readlink -f ${SERIESPATH})
+pushd $PATCHPATH > /dev/null
+for PATCH in $(find -name "*.patch"); do
+       # Remove the leading "./"
+       PATCH=${PATCH##./}
+       $VERBOSE $PATCH
+       if ! grep -q -e "^$PATCH" $CANONICAL_SERIESPATH/*.series ; then
+               $DELETE $PATCH
        fi
 done
+popd > /dev/null