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 |
Context | Check | Description |
---|---|---|
cbaines/applying patch | fail | View Laminar job |
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’.
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 --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]}")) }