summaryrefslogtreecommitdiff
path: root/bash
diff options
context:
space:
mode:
authorMatthew Leeds <matthew.leeds@endlessm.com>2018-09-30 22:36:42 -0700
committerAtomic Bot <atomic-devel@projectatomic.io>2018-10-01 13:19:27 +0000
commit5cada0f051403255059e6eeeb27665f87311a4e5 (patch)
tree5d4296339f2e0bff047d3b6979306f328920d3bf /bash
parent39d5db7e1ef99b7c01a21dab3b189ccf660f9d48 (diff)
downloadostree-5cada0f051403255059e6eeeb27665f87311a4e5.tar.gz
bash-completion: Fix --repo autocomplete
This commit fixes the bash tab completion handling of the "--repo" argument. Before this commit, the completion only works if "--repo" comes after the main command. After this commit, you can use "--repo" directly after "ostree" in the command line, as is natural. Closes: #1745 Approved by: jlebon
Diffstat (limited to 'bash')
-rw-r--r--bash/ostree23
1 files changed, 16 insertions, 7 deletions
diff --git a/bash/ostree b/bash/ostree
index 677aee7c..52b111ec 100644
--- a/bash/ostree
+++ b/bash/ostree
@@ -24,12 +24,6 @@
# - Structured option arguments (e.g. --foo KEY=VALUE) are not parsed.
#
# - Static deltas could likely be completed. (e.g. ostree static-delta delete [TAB])
-#
-# - The "--repo PATH" option needs to come after the subcommand or it
-# won't be picked up for completion of subsequent options.
-# i.e. ostree commit --repo PATH ... <-- works
-# ostree --repo PATH commit ... <-- does not work
-# (Possibly an easy fix.)
# Finds the position of the first non-flag word.
@@ -183,9 +177,16 @@ __ostree_subcommands() {
# This handles "ostree [TAB]" (without a subcommand).
_ostree_ostree() {
+ case "$prev" in
+ --repo)
+ __ostree_compreply_dirs_only
+ return 0
+ ;;
+ esac
+
case "$cur" in
-*)
- COMPREPLY=( $( compgen -W "$main_boolean_options" -- "$cur" ) )
+ COMPREPLY=( $( compgen -W "$main_options" -- "$cur" ) )
;;
*)
COMPREPLY=( $( compgen -W "$commands" -- "$cur" ) )
@@ -1753,6 +1754,14 @@ _ostree() {
--verbose -v
--version
"
+ local main_options_with_args="
+ --repo
+ "
+ local main_options_with_args_glob=$( __ostree_to_extglob "$main_options_with_args" )
+ local main_options="
+ $main_boolean_options
+ $main_options_with_args
+ "
COMPREPLY=()
local cur prev words cword