devtools: fix cleanup of checkpatch temporary file
authorDavid Marchand <david.marchand@redhat.com>
Tue, 13 Aug 2019 06:38:22 +0000 (08:38 +0200)
committerThomas Monjalon <thomas@monjalon.net>
Mon, 21 Oct 2019 14:19:00 +0000 (16:19 +0200)
The regexp part of the cleanup routine was not updated accordingly when
a common prefix for temp files was introduced.
Set the trap handler only when required.

Fixes: ff37ca5d3773 ("devtools: use a common prefix for temporary files")
Cc: stable@dpdk.org
Signed-off-by: David Marchand <david.marchand@redhat.com>
devtools/checkpatches.sh

index 8e2beee..b16bace 100755 (executable)
@@ -36,14 +36,6 @@ LINE_SPACING,PARENTHESIS_ALIGNMENT,NETWORKING_BLOCK_COMMENT_STYLE,\
 NEW_TYPEDEFS,COMPARISON_TO_NULL"
 options="$options $DPDK_CHECKPATCH_OPTIONS"
 
-clean_tmp_files() {
-       if echo $tmpinput | grep -q '^checkpatches\.' ; then
-               rm -f "$tmpinput"
-       fi
-}
-
-trap "clean_tmp_files" INT
-
 print_usage () {
        cat <<- END_OF_HELP
        usage: $(basename $0) [-q] [-v] [-nX|-r range|patch1 [patch2] ...]]
@@ -150,13 +142,16 @@ check () { # <patch> <commit> <title>
        ! $verbose || print_headline "$3"
        if [ -n "$1" ] ; then
                tmpinput=$1
-       elif [ -n "$2" ] ; then
-               tmpinput=$(mktemp -t dpdk.checkpatches.XXXXXX)
-               git format-patch --find-renames \
-               --no-stat --stdout -1 $commit > "$tmpinput"
        else
                tmpinput=$(mktemp -t dpdk.checkpatches.XXXXXX)
-               cat > "$tmpinput"
+               trap "rm -f '$tmpinput'" INT
+
+               if [ -n "$2" ] ; then
+                       git format-patch --find-renames \
+                       --no-stat --stdout -1 $commit > "$tmpinput"
+               else
+                       cat > "$tmpinput"
+               fi
        fi
 
        ! $verbose || printf 'Running checkpatch.pl:\n'
@@ -191,7 +186,10 @@ check () { # <patch> <commit> <title>
                ret=1
        fi
 
-       clean_tmp_files
+       if [ "$tmpinput" != "$1" ]; then
+               rm -f "$tmpinput"
+               trap - INT
+       fi
        [ $ret -eq 0 ] && return 0
 
        status=$(($status + 1))