From: Junio C Hamano <gitster@pobox.com>
To: Beat Bolli <dev+git@drbeat.li>
Cc: git@vger.kernel.org,
"Philippe Blain" <levraiphilippeblain@gmail.com>,
"Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
Subject: Re: [PATCH] completion: use awk for filtering the config entries
Date: Fri, 16 Feb 2024 09:35:31 -0800 [thread overview]
Message-ID: <xmqqr0hcjorg.fsf@gitster.g> (raw)
In-Reply-To: <20240216171046.927552-1-dev+git@drbeat.li> (Beat Bolli's message of "Fri, 16 Feb 2024 18:10:46 +0100")
Beat Bolli <dev+git@drbeat.li> writes:
> 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.
Makes sense. I wonder if we can have some simple script sanity
checker that catches things like this, e.g., catting a single file
into pipe, grep appearing upstream of awk or sed, etc.
> 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>
> ---
>
> Junio, this goes on top of 'pb/complete-config' which is on next
> currently.
Alternatively we could redo the topic, squashing this fix in, after
the release when we rewind 'next'.
Thanks.
>
> contrib/completion/git-completion.bash | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
> index 444b3efa63..fcf1afd75d 100644
> --- a/contrib/completion/git-completion.bash
> +++ b/contrib/completion/git-completion.bash
> @@ -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=
next prev parent reply other threads:[~2024-02-16 17:35 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-16 17:10 [PATCH] completion: use awk for filtering the config entries Beat Bolli
2024-02-16 17:35 ` Junio C Hamano [this message]
2024-02-16 18:29 ` Beat Bolli
2024-02-18 21:58 ` Johannes Schindelin
2024-02-19 17:19 ` Junio C Hamano
2024-02-16 18:47 ` Philippe Blain
2024-02-16 20:12 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=xmqqr0hcjorg.fsf@gitster.g \
--to=gitster@pobox.com \
--cc=avarab@gmail.com \
--cc=dev+git@drbeat.li \
--cc=git@vger.kernel.org \
--cc=levraiphilippeblain@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.