This patch adds a hook function that is called during refresh. At that point
in time an 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)"


_______________________________________________
Quilt-dev mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/quilt-dev

Reply via email to