me
/
guix
Archived
1
0
Fork 0

bash completion: Restore completion for 'guix system', etc.

Commit 538ca8dd65 introduced a second
'_guix_complete_subcommand' function, shadowing the existing one, which
broke sub-command completion for 'guix system', 'guix import', etc.

* etc/completion/bash/guix: Distinguish between '_guix_complete_command'
and '_guix_complete_subcommand'.  Adjust users to call the right one.
master
Ludovic Courtès 2020-09-10 11:19:41 +02:00
parent 3794ce93be
commit 2ba81afcc2
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
1 changed files with 15 additions and 15 deletions

View File

@ -19,6 +19,19 @@
# Bash completion for Guix commands. # Bash completion for Guix commands.
declare _guix_available_packages declare _guix_available_packages
declare _guix_commands
_guix_complete_command ()
{
local word_at_point="${COMP_WORDS[$COMP_CWORD]}"
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-)"
fi
COMPREPLY=($(compgen -W "$_guix_commands" -- "$word_at_point"))
}
_guix_complete_subcommand () _guix_complete_subcommand ()
{ {
@ -146,19 +159,6 @@ _guix_complete_pid ()
COMPREPLY=($(compgen -W "$pids" -- "$1")) COMPREPLY=($(compgen -W "$pids" -- "$1"))
} }
declare _guix_subcommands
_guix_complete_subcommand ()
{
if [ -z "$_guix_subcommands" ]
then
# Cache the list of subcommands to speed things up.
_guix_subcommands="$(guix --help 2> /dev/null \
| grep '^ ' | cut -c 2-)"
fi
COMPREPLY=($(compgen -W "$_guix_subcommands" -- "$word_at_point"))
}
_guix_complete () _guix_complete ()
{ {
local word_count=${#COMP_WORDS[*]} local word_count=${#COMP_WORDS[*]}
@ -176,7 +176,7 @@ _guix_complete ()
case $COMP_CWORD in case $COMP_CWORD in
1) 1)
_guix_complete_subcommand _guix_complete_command
;; ;;
*) *)
if _guix_is_command "package" if _guix_is_command "package"
@ -251,7 +251,7 @@ _guix_complete ()
then then
_guix_complete_file _guix_complete_file
else else
_guix_complete_subcommand _guix_complete_command
fi fi
elif _guix_is_command "container" elif _guix_is_command "container"
then then