summary refs log tree commit diff
path: root/etc
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2020-06-04 18:09:11 +0200
committerLudovic Courtès <ludo@gnu.org>2020-06-04 23:26:43 +0200
commit538ca8dd65f0075cc65bcca18ed87f66a789290a (patch)
treeb6e45ce18a472fe86b374ca2cbc103410faecc26 /etc
parentb7bb381ba3740d33652c2a8e7772c17b93b259cc (diff)
downloadguix-538ca8dd65f0075cc65bcca18ed87f66a789290a.tar.gz
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.
Diffstat (limited to 'etc')
-rw-r--r--etc/completion/bash/guix21
1 files changed, 14 insertions, 7 deletions
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