File quilt-refresh-check.diff of Package quilt
From: Jan Blunck <jblunck@suse.de>
Subject: Add quilt_refresh_check() hook
This patch adds a hook function that is called during refresh. At that point
in time a user specified script can be called. If the hook function signals
no error the refresh is permitted.
Here is an example from my ~/.quiltrc:
function quilt_refresh_check () {
local oldpatch=$1
local newpatch=$2
# Run scripts/checkpatch.pl
if [ -f scripts/checkpatch.pl ]
then
perl -w scripts/checkpatch.pl --no-tree $newpatch | \
grep -v "has no obvious"
fi
# Check if somebody from SUSE signed of this patch
if ! grep -Eiqe "^(From|Signed-off-by|Acked-by):.*@(suse\.(de|com|cz)|novell.com)\>" $newpatch; then
local ACKED_BY=$(git var GIT_COMMITTER_IDENT | \
sed -e 's/>.*/>/')
local LAST_SIGNED_OFF=$(cat $newpatch | \
sed -ne '/^Signed-off-by: /p' | sed -ne '$p')
local tmpfile=$(gen_tempfile)
if [ -n "$LAST_SIGNED_OFF" ] ; then
cat_file $newpatch | sed -e "/^$LAST_SIGNED_OFF$/a\Acked-by: $ACKED_BY" > $tmpfile
else
cat_file $newpatch | sed -e "/^---$/i\Acked-by: $ACKED_BY" > $tmpfile
fi
cat_to_new_file $newpatch < $tmpfile
rm -f $tmpfile
fi
return 0
}
---
quilt/refresh.in | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
Index: b/quilt/refresh.in
===================================================================
--- a/quilt/refresh.in
+++ b/quilt/refresh.in
@@ -312,7 +312,11 @@ cat $tmp_patch >> $tmp_result
mkdir -p $(dirname $patch_file)
-if [ -e $patch_file ] && \
+if ( [ "$(type -t quilt_refresh_check 2> /dev/null)" = function ] && \
+ ! quilt_refresh_check $patch_file $tmp_result )
+then
+ printf $"Patch %s failed check\n" "$(print_patch $patch)"
+elif [ -e $patch_file ] && \
diff -q $patch_file $tmp_result > /dev/null
then
printf $"Patch %s is unchanged\n" "$(print_patch $patch)"