[PATCH v2] dim: abstract listing the developer subcommands

Jani Nikula jani.nikula at intel.com
Tue Apr 3 09:03:27 UTC 2018


Make the developer subcommand checking less clunky.

v2: Preserve array with in-line comments (Daniel)

Signed-off-by: Jani Nikula <jani.nikula at intel.com>
---
 dim | 60 ++++++++++++++++++++++++++++++------------------------------
 1 file changed, 30 insertions(+), 30 deletions(-)

diff --git a/dim b/dim
index 068efb674cd3..505226bd18ab 100755
--- a/dim
+++ b/dim
@@ -2057,6 +2057,31 @@ function dim_list_aliases
 		sed 's/^dim_alias_//;s/=/\t/;s/_/-/g'
 }
 
+# Commands that do not require full setup
+function list_developer_commands
+{
+	local -a developer_commands
+
+	developer_commands=(
+		# developer commands
+		# these should match the developer section in dim.rst
+		"checker"
+		"checkpatch"
+		"cite"
+		"fixes"
+		"retip"
+		"sparse"
+		"tc"
+		# help commands
+		"help"
+		"usage"
+		# include setup
+		"setup"
+	)
+
+	printf "%s\n" "${developer_commands[@]}"
+}
+
 function dim_cat_to_fixup # [branch]
 {
 	local fixup_file repo branch
@@ -2294,33 +2319,12 @@ if ! declare -f $subcmd_func >/dev/null; then
 	exit 1
 fi
 
-# functions useful for developers don't need a full dim setup
-developer_commands=(
-	# developer commands
-	# these should match the developer section in dim.rst
-	"tc"
-	"cite"
-	"fixes"
-	"checkpatch"
-	"sparse"
-	"checker"
-	"retip"
-	# help commands
-	"help"
-	"usage"
-	# include setup
-	"setup"
-)
-
-developer_command=0
-for cmd in "${developer_commands[@]}" ; do
-	if [ $cmd = $subcmd ] ; then
-		developer_command=1
-		break;
+# Commands useful for developers don't need a full dim setup
+if list_developer_commands | grep -qx $subcmd; then
+	if [ -r $DIM_PREFIX/drm-rerere/$integration_config ]; then
+		read_integration_config
 	fi
-done
-
-if [ $developer_command = "0" ]; then
+else
 	for d in $DIM_PREFIX $DIM_PREFIX/$DIM_REPO $DIM_PREFIX/drm-rerere $DIM_PREFIX/drm-tip; do
 		if [ ! -d $d ]; then
 			echoerr "$d is missing, please check your configuration and/or run dim setup"
@@ -2329,10 +2333,6 @@ if [ $developer_command = "0" ]; then
 	done
 
 	read_integration_config
-else
-	if [ -r $DIM_PREFIX/drm-rerere/$integration_config ]; then
-		read_integration_config
-	fi
 fi
 
 # throw away to not confuse list-aliases
-- 
2.11.0



More information about the dim-tools mailing list