summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--etc/completion/bash/guix10
1 files changed, 7 insertions, 3 deletions
diff --git a/etc/completion/bash/guix b/etc/completion/bash/guix
index 6a11e1b23b..f262d4d95a 100644
--- a/etc/completion/bash/guix
+++ b/etc/completion/bash/guix
@@ -275,9 +275,13 @@ _guix_complete ()
                 fi
 	    elif [[ "$command" = "environment" || "$command" = "shell" ]]
 	    then
-                if _guix_is_dash_L || _guix_is_dash_m || _guix_is_dash_p || _guix_is_dash_l
-                then
-                    _guix_complete_file
+		if _guix_is_dash_f && [[ "$command" = "shell" ]]
+		then
+		    # The otherwise identical ‘guix environment’ lacks the ‘-f’ option.
+		    _guix_complete_file
+		elif _guix_is_dash_L || _guix_is_dash_m || _guix_is_dash_p || _guix_is_dash_l
+		then
+		    _guix_complete_file
 		elif _guix_is_option "$word_at_point"
 		then
 		    _guix_complete_option "$command_index" "$word_at_point"