From 538ca8dd65f0075cc65bcca18ed87f66a789290a Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 4 Jun 2020 18:09:11 +0200 Subject: bash completion: Complete sub-commands after 'guix time-machine'. * etc/completion/bash/guix (_guix_complete_subcommand): New function. (_guix_complete): Use it. For "time-machine", call '_guix_complete_subcommand' by default. --- etc/completion/bash/guix | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) (limited to 'etc') diff --git a/etc/completion/bash/guix b/etc/completion/bash/guix index 650cf1d1ce..df35919eb2 100644 --- a/etc/completion/bash/guix +++ b/etc/completion/bash/guix @@ -148,6 +148,17 @@ _guix_complete_pid () 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 () { local word_count=${#COMP_WORDS[*]} @@ -165,13 +176,7 @@ _guix_complete () case $COMP_CWORD in 1) - 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_subcommand ;; *) if _guix_is_command "package" @@ -237,6 +242,8 @@ _guix_complete () if _guix_is_dash_C then _guix_complete_file + else + _guix_complete_subcommand fi elif _guix_is_command "container" then -- cgit v1.2.3