perf/run: add conf_opts argument to get_var_from_env_or_config()

Let's make it possible to use `git config` type specifiers like `--int` or `--bool`, so that config values are converted to the canonical form and easier to use. This additional argument is now the fourth argument of get_var_from_env_or_config() instead of the fifth because we want the default value argument to be unset if it is not passed, and this is simpler if it is the last argument. Signed-off-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Christian Couder committed Jan 5, 2018 at 10:12 UTC 3ae7d2b0cd819f2b01e70c0015d6971a47e24c8a
1 file changed +6 -5
t/perf/run
+6 -5
@@ -105,7 +105,8 @@ get_var_from_env_or_config () {
105 env_var="$1"
106 conf_sec="$2"
107 conf_var="$3"
108 - # $4 can be set to a default value
108 + conf_opts="$4" # optional
109 + # $5 can be set to a default value
110
111 # Do nothing if the env variable is already set
112 eval "test -z \"\${$env_var+x}\"" || return
@@ -116,18 +117,18 @@ get_var_from_env_or_config () {
117 if test -n "$GIT_PERF_SUBSECTION"
118 then
119 var="$conf_sec.$GIT_PERF_SUBSECTION.$conf_var"
119 - conf_value=$(git config -f "$GIT_PERF_CONFIG_FILE" "$var") &&
120 + conf_value=$(git config $conf_opts -f "$GIT_PERF_CONFIG_FILE" "$var") &&
121 eval "$env_var=\"$conf_value\"" && return
122 fi
123 var="$conf_sec.$conf_var"
123 - conf_value=$(git config -f "$GIT_PERF_CONFIG_FILE" "$var") &&
124 + conf_value=$(git config $conf_opts -f "$GIT_PERF_CONFIG_FILE" "$var") &&
125 eval "$env_var=\"$conf_value\"" && return
126
126 - test -n "${4+x}" && eval "$env_var=\"$4\""
127 + test -n "${5+x}" && eval "$env_var=\"$5\""
128 }
129
130 run_subsection () {
130 - get_var_from_env_or_config "GIT_PERF_REPEAT_COUNT" "perf" "repeatCount" 3
131 + get_var_from_env_or_config "GIT_PERF_REPEAT_COUNT" "perf" "repeatCount" "--int" 3
132 export GIT_PERF_REPEAT_COUNT
133
134 get_var_from_env_or_config "GIT_PERF_DIRS_OR_REVS" "perf" "dirsOrRevs"