It is now possible to check a patch by providing an email through stdin. It is especially useful to automate checkpatch run when receiving an email.
Signed-off-by: Thomas Monjalon <thomas.monjalon at 6wind.com> --- scripts/checkpatches.sh | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/scripts/checkpatches.sh b/scripts/checkpatches.sh index 5286fe6..0f3ed9d 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 () { # <patch> <commit> <title> 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,15 @@ check () { # <patch> <commit> <title> status=$(($status + 1)) } -if [ -z "$1" ] ; then +if [ ! -t 0 ] ; then # stdin + subject=$(while read header value ; do + if [ "$header" = 'Subject:' ] ; then + echo $value + break + fi + done) + check '' '' "$subject" +elif [ -z "$1" ] ; then if [ $number -eq 0 ] ; then commits=$(git rev-list --reverse origin/master..) else -- 2.7.0