]> git.ipfire.org Git - thirdparty/git.git/commitdiff
completion: use awk for filtering the config entries
authorBeat Bolli <dev+git@drbeat.li>
Fri, 16 Feb 2024 17:10:46 +0000 (18:10 +0100)
committerJunio C Hamano <gitster@pobox.com>
Fri, 16 Feb 2024 20:14:11 +0000 (12:14 -0800)
Commits 1e0ee4087e (completion: add and use
__git_compute_first_level_config_vars_for_section, 2024-02-10) and
6e32f718ff (completion: add and use
__git_compute_second_level_config_vars_for_section, 2024-02-10)
introduced new helpers for config completion.

Both helpers use a pipeline of grep and awk to filter the list of config
entries. awk is perfectly capable of filtering, so let's eliminate the
grep process and move the filtering into the awk script.

The "-E" grep option (extended syntax) was not necessary, as $section is
a single word.

While at it, wrap the over-long lines to make them more readable.

Signed-off-by: Beat Bolli <dev+git@drbeat.li>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
contrib/completion/git-completion.bash

index 444b3efa6303396acabe67a997fbf6a57fe0bcdb..fcf1afd75de4eb14a0123a2a75692298f2c39a0b 100644 (file)
@@ -2673,7 +2673,8 @@ __git_compute_first_level_config_vars_for_section ()
        __git_compute_config_vars
        local this_section="__git_first_level_config_vars_for_section_${section}"
        test -n "${!this_section}" ||
-       printf -v "__git_first_level_config_vars_for_section_${section}" %s "$(echo "$__git_config_vars" | grep -E "^${section}\.[a-z]" | awk -F. '{print $2}')"
+       printf -v "__git_first_level_config_vars_for_section_${section}" %s \
+               "$(echo "$__git_config_vars" | awk -F. "/^${section}\.[a-z]/ { print \$2 }")"
 }
 
 __git_compute_second_level_config_vars_for_section ()
@@ -2682,7 +2683,8 @@ __git_compute_second_level_config_vars_for_section ()
        __git_compute_config_vars_all
        local this_section="__git_second_level_config_vars_for_section_${section}"
        test -n "${!this_section}" ||
-       printf -v "__git_second_level_config_vars_for_section_${section}" %s "$(echo "$__git_config_vars_all" | grep -E "^${section}\.<" | awk -F. '{print $3}')"
+       printf -v "__git_second_level_config_vars_for_section_${section}" %s \
+               "$(echo "$__git_config_vars_all" | awk -F. "/^${section}\.</ { print \$3 }")"
 }
 
 __git_config_sections=