bash completion: Complete top-level options.

* etc/completion/bash/guix (_guix_complete_option): Fix operation without a {,sub}command.
(_guix_complete): Call it also when no command is given.
This commit is contained in:
Tobias Geerinckx-Rice 2021-10-30 16:37:25 +02:00
parent 0987a0eba4
commit 8e6989fcaf
No known key found for this signature in database
GPG key ID: 0DB0FF884F556D79

View file

@ -72,10 +72,16 @@ _guix_complete_option ()
{ {
local command="${COMP_WORDS[$1]}" local command="${COMP_WORDS[$1]}"
local subcommand="${COMP_WORDS[$(($1 + 1))]}" local subcommand="${COMP_WORDS[$(($1 + 1))]}"
if _guix_is_option "$subcommand"
if [ $1 -le 1 ]
then
command=""
subcommand=""
elif _guix_is_option "$subcommand"
then then
subcommand="" subcommand=""
fi fi
local options="$(${COMP_WORDS[0]} $command $subcommand --help 2> /dev/null \ local options="$(${COMP_WORDS[0]} $command $subcommand --help 2> /dev/null \
| grep '^ \+-' \ | grep '^ \+-' \
| sed -e's/^.*--\([a-zA-Z0-9_-]\+\)\(=\?\).*/--\1\2/g')" | sed -e's/^.*--\([a-zA-Z0-9_-]\+\)\(=\?\).*/--\1\2/g')"
@ -229,6 +235,7 @@ _guix_complete ()
case $COMP_CWORD in case $COMP_CWORD in
$command_index) $command_index)
_guix_complete_command _guix_complete_command
_guix_complete_option 0 "$word_at_point"
;; ;;
*) *)
if [[ "$command" = "package" ]] if [[ "$command" = "package" ]]