[v3,1/3] devtools: standardize script arguments

Message ID 20200602135319.21457-2-ciara.power@intel.com (mailing list archive)
State Superseded, archived
Delegated to: Thomas Monjalon
Headers
Series standardize devtools check scripts |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-nxp-Performance success Performance Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-testing warning Testing issues
ci/Intel-compilation success Compilation OK

Commit Message

Power, Ciara June 2, 2020, 1:53 p.m. UTC
  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.

Signed-off-by: Ciara Power <ciara.power@intel.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>

---
v3:
  - Reworded check-git-log help text example.
  - Added comment to indicate new and old format argument parsing.
v2: Added exit 0 after print usage.
---
 devtools/check-git-log.sh | 42 ++++++++++++++++++++++++++++++---------
 devtools/checkpatches.sh  |  2 +-
 2 files changed, 34 insertions(+), 10 deletions(-)
  

Comments

Thomas Monjalon June 17, 2020, 9:40 a.m. UTC | #1
02/06/2020 15:53, Ciara Power:
> 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.
> 
> Signed-off-by: Ciara Power <ciara.power@intel.com>
> Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
> 
> ---
> v3:
>   - Reworded check-git-log help text example.
>   - Added comment to indicate new and old format argument parsing.
> v2: Added exit 0 after print usage.
> ---
> --- a/devtools/check-git-log.sh
> +++ b/devtools/check-git-log.sh
> +	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.
> +	When no parameter is provided, script will use range starting from
> +	origin/master to HEAD.

I suggest this shorter sentence:
If no range provided, default is origin/master..HEAD.

> +# 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.
> +# e.g. To check only the last commit, ‘-n1’ or ‘-r@~..’ is used.

This example line is useless here.

> +# The old format allows for specifying patches by passing -X or range
> +# as the first argument.
> +# e.g. To check only the last commit, '-1'  or '@~..' is used as first argument.

This example line is useless here.
  

Patch

diff --git a/devtools/check-git-log.sh b/devtools/check-git-log.sh
index 4e65be0e4..5220765b9 100755
--- a/devtools/check-git-log.sh
+++ b/devtools/check-git-log.sh
@@ -7,23 +7,47 @@ 
 # 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
-	usage: $(basename $0) [-h] [range]
+	usage: $(basename $0) [-h] [-nX|-r range]
 
 	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.
+	When no parameter is provided, script will use range starting from
+	origin/master to HEAD.
 	END_OF_HELP
-	exit
-fi
+}
 
 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.
+# e.g. To check only the last commit, ‘-n1’ or ‘-r@~..’ is used.
+# The old format allows for specifying patches by passing -X or range
+# as the first argument.
+# e.g. To check only the last commit, '-1'  or '@~..' is used as first argument.
 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
-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)
diff --git a/devtools/checkpatches.sh b/devtools/checkpatches.sh
index 42b833e0d..e111c31d7 100755
--- a/devtools/checkpatches.sh
+++ b/devtools/checkpatches.sh
@@ -38,7 +38,7 @@  options="$options $DPDK_CHECKPATCH_OPTIONS"
 
 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.