diff --git a/scripts/checkpatches.sh b/scripts/checkpatches.sh index 5286fe6bb3..619ac217f1 100755 --- a/scripts/checkpatches.sh +++ b/scripts/checkpatches.sh @@ -53,7 +53,7 @@ print_usage () { Run Linux kernel checkpatch.pl with DPDK options. The environment variable DPDK_CHECKPATCH_PATH must be set. - The patches to check can be from files specified on the command line, + The patches to check can be from stdin, files specified on the command line, or latest git commits limited with -n option (default limit: origin/master). END_OF_HELP } @@ -90,6 +90,8 @@ check () { # elif [ -n "$2" ] ; then report=$(git format-patch --no-stat --stdout -1 $commit | $DPDK_CHECKPATCH_PATH $options - 2>/dev/null) + else + report=$($DPDK_CHECKPATCH_PATH $options - 2>/dev/null) fi [ $? -ne 0 ] || continue $verbose || printf '\n### %s\n\n' "$3" @@ -97,7 +99,20 @@ check () { # <patch> <commit> <title> status=$(($status + 1)) } -if [ -z "$1" ] ; then +if [ -n "$1" ] ; then + for patch in "$@" ; do + subject=$(sed -n 's,^Subject: ,,p' "$patch") + check "$patch" '' "$subject" + done +elif [ ! -t 0 ] ; then # stdin + subject=$(while read header value ; do + if [ "$header" = 'Subject:' ] ; then + echo $value + break + fi + done) + check '' '' "$subject" +else if [ $number -eq 0 ] ; then commits=$(git rev-list --reverse origin/master..) else @@ -107,11 +122,6 @@ if [ -z "$1" ] ; then subject=$(git log --format='%s' -1 $commit) check '' $commit "$subject" done -else - for patch in "$@" ; do - subject=$(sed -n 's,^Subject: ,,p' "$patch") - check "$patch" '' "$subject" - done fi pass=$(($total - $status)) $quiet || printf '\n%d/%d valid patch' $pass $total