devtools: standardize script arguments
authorCiara Power <ciara.power@intel.com>
Tue, 23 Jun 2020 09:29:34 +0000 (10:29 +0100)
committerThomas Monjalon <thomas@monjalon.net>
Thu, 30 Jul 2020 23:09:26 +0000 (01:09 +0200)
This patch modifies the arguments expected by the check-git-log script,
to match the format of arguments for the checkpatches script. Both
scripts now take certain argument options in the same format, making
them easier to use.
e.g. Both now take a commit ID range by "-r <range>"

The checkpatches help print is also updated to include the "-h" option.

The contributor's guide includes the usage of both the checkpatches and
check-git-log scripts, which needed to be updated to reflect the now
standardised format.

Signed-off-by: Ciara Power <ciara.power@intel.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Reviewed-by: Thomas Monjalon <thomas@monjalon.net>
devtools/check-git-log.sh
devtools/checkpatches.sh
doc/guides/contributing/patches.rst

index 4e65be0..e5b4302 100755 (executable)
@@ -7,23 +7,44 @@
 # If any doubt about the formatting, please check in the most recent history:
 #      git log --format='%>|(15)%cr   %s' --reverse | grep -i <pattern>
 
 # If any doubt about the formatting, please check in the most recent history:
 #      git log --format='%>|(15)%cr   %s' --reverse | grep -i <pattern>
 
-if [ "$1" = '-h' -o "$1" = '--help' ] ; then
+print_usage () {
        cat <<- END_OF_HELP
        cat <<- END_OF_HELP
-       usage: $(basename $0) [-h] [range]
+       usage: $(basename $0) [-h] [-nX|-r range]
 
        Check commit log formatting.
 
        Check commit log formatting.
-       The git range can be specified as a "git log" option,
-       e.g. -1 to check only the latest commit.
-       The default range starts from origin/master to HEAD.
+       The git commits to be checked can be specified as a "git log" option,
+       by latest git commits limited with -n option, or commits in the git
+       range specified with -r option.
+       e.g. To check only the last commit, ‘-n1’ or ‘-r@~..’ is used.
+       If no range provided, default is origin/master..HEAD.
        END_OF_HELP
        END_OF_HELP
-       exit
-fi
+}
 
 selfdir=$(dirname $(readlink -f $0))
 
 selfdir=$(dirname $(readlink -f $0))
+# The script caters for two formats, the new preferred format, and the old
+# format to ensure backward compatibility.
+# The new format is aligned with the format of the checkpatches script,
+# and allows for specifying the patches to check by passing -nX or -r range.
+# The old format allows for specifying patches by passing -X or range
+# as the first argument.
 range=${1:-origin/master..}
 range=${1:-origin/master..}
+
+if [ "$range" = '--help' ] ; then
+       print_usage
+       exit 0
 # convert -N to HEAD~N.. in order to comply with git-log-fixes.sh getopts
 # convert -N to HEAD~N.. in order to comply with git-log-fixes.sh getopts
-if printf -- $range | grep -q '^-[0-9]\+' ; then
-       range="HEAD$(printf -- $range | sed 's,^-,~,').."
+elif printf -- "$range" | grep -q '^-[0-9]\+' ; then
+       range="HEAD$(printf -- "$range" | sed 's,^-,~,').."
+else
+       while getopts hr:n: ARG ; do
+               case $ARG in
+                       n ) range="HEAD~$OPTARG.." ;;
+                       r ) range=$OPTARG ;;
+                       h ) print_usage ; exit 0 ;;
+                       ? ) print_usage ; exit 1 ;;
+               esac
+       done
+       shift $(($OPTIND - 1))
 fi
 
 commits=$(git log --format='%h' --reverse $range)
 fi
 
 commits=$(git log --format='%h' --reverse $range)
index 0b94a31..acf921a 100755 (executable)
@@ -38,7 +38,7 @@ options="$options $DPDK_CHECKPATCH_OPTIONS"
 
 print_usage () {
        cat <<- END_OF_HELP
 
 print_usage () {
        cat <<- END_OF_HELP
-       usage: $(basename $0) [-q] [-v] [-nX|-r range|patch1 [patch2] ...]]
+       usage: $(basename $0) [-h] [-q] [-v] [-nX|-r range|patch1 [patch2] ...]
 
        Run Linux kernel checkpatch.pl with DPDK options.
        The environment variable DPDK_CHECKPATCH_PATH must be set.
 
        Run Linux kernel checkpatch.pl with DPDK options.
        The environment variable DPDK_CHECKPATCH_PATH must be set.
index 16b4022..261c4b8 100644 (file)
@@ -429,23 +429,16 @@ Once the environment variable is set, the script can be run as follows::
 
 The script usage is::
 
 
 The script usage is::
 
-   checkpatches.sh [-h] [-q] [-v] [patch1 [patch2] ...]]"
-
-Where:
-
-* ``-h``: help, usage.
-* ``-q``: quiet. Don't output anything for files without issues.
-* ``-v``: verbose.
-* ``patchX``: path to one or more patches.
+   checkpatches.sh [-h] [-q] [-v] [-nX|-r range|patch1 [patch2] ...]
 
 Then the git logs should be checked using the ``check-git-log.sh`` script.
 
 The script usage is::
 
 
 Then the git logs should be checked using the ``check-git-log.sh`` script.
 
 The script usage is::
 
-   check-git-log.sh [range]
-
-Where the range is a ``git log`` option.
+   check-git-log.sh [-h] [-nX|-r range]
 
 
+For both of the above scripts, the -n option is used to specify a number of commits from HEAD,
+and the -r option allows the user specify a ``git log`` range.
 
 .. _contrib_check_compilation:
 
 
 .. _contrib_check_compilation: