Viewing: clearpatches.sh

#!/usr/bin/env 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}
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

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