diff mbox series

[bug#43509] bash completion: Fix completion for commands and subcommands.

Message ID 20200919125251.3124-1-go.wigust@gmail.com
State Accepted
Headers show
Series [bug#43509] bash completion: Fix completion for commands and subcommands. | expand

Checks

Context Check Description
cbaines/applying patch fail View Laminar job

Commit Message

Oleg Pykhalov Sept. 19, 2020, 12:52 p.m. UTC
* etc/completion/bash/guix
(_guix_complete_command, _guix_complete_subcommand): Fix completion.
---
 etc/completion/bash/guix | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

Comments

Ludovic Courtès Sept. 21, 2020, 9:41 p.m. UTC | #1
Hi!

Oleg Pykhalov <go.wigust@gmail.com> skribis:

> * etc/completion/bash/guix
> (_guix_complete_command, _guix_complete_subcommand): Fix completion.

Oops, I see.  Could you mention in the commit log that this is a
followup to 3794ce93be8216d8378df7b808ce7f53b1e05a53, which broke it all
(right?).

>  	# Cache the list of commands to speed things up.
> -	_guix_commands="$(guix --help 2> /dev/null \
> -                                     | grep '^  ' | cut -c 2-)"
> +	_guix_commands="$(guix --help 2> /dev/null | awk '/^    [a-z]/ { print $1 }')"

Could we avoid awk?

Thanks,
Ludo’.
Ludovic Courtès Sept. 24, 2020, 3:57 p.m. UTC | #2
Hi,

Ludovic Courtès <ludo@gnu.org> skribis:

> Oleg Pykhalov <go.wigust@gmail.com> skribis:
>
>> * etc/completion/bash/guix
>> (_guix_complete_command, _guix_complete_subcommand): Fix completion.
>
> Oops, I see.  Could you mention in the commit log that this is a
> followup to 3794ce93be8216d8378df7b808ce7f53b1e05a53, which broke it all
> (right?).
>
>>  	# Cache the list of commands to speed things up.
>> -	_guix_commands="$(guix --help 2> /dev/null \
>> -                                     | grep '^  ' | cut -c 2-)"
>> +	_guix_commands="$(guix --help 2> /dev/null | awk '/^    [a-z]/ { print $1 }')"
>
> Could we avoid awk?

I went ahead and did that in 8e0c5033b17fcf1e4596ee9a3d52157900acc6fa.

Completion’s back!  :-)

Ludo’.
diff mbox series

Patch

diff --git a/etc/completion/bash/guix b/etc/completion/bash/guix
index 98d20484f7..3bc9a48947 100644
--- a/etc/completion/bash/guix
+++ b/etc/completion/bash/guix
@@ -27,8 +27,7 @@  _guix_complete_command ()
     if [ -z "$_guix_commands" ]
     then
 	# Cache the list of commands to speed things up.
-	_guix_commands="$(guix --help 2> /dev/null \
-                                     | grep '^  ' | cut -c 2-)"
+	_guix_commands="$(guix --help 2> /dev/null | awk '/^    [a-z]/ { print $1 }')"
     fi
     COMPREPLY=($(compgen -W "$_guix_commands" -- "$word_at_point"))
 }
@@ -36,9 +35,7 @@  _guix_complete_command ()
 _guix_complete_subcommand ()
 {
     local command="${COMP_WORDS[1]}"
-    local subcommands="$(${COMP_WORDS[0]} $command --help 2> /dev/null \
-                         | grep '^   [a-z]' \
-                         | sed -e's/^ \+\([a-z-]\+\).*$/\1/g')"
+    local subcommands="$(${COMP_WORDS[0]} $command --help 2> /dev/null | awk '/^   [a-z]/ { print $1 }')"
     COMPREPLY=($(compgen -W "$subcommands" -- "${COMP_WORDS[$COMP_CWORD]}"))
 }