bash_completion now shows only subcommands when subcommand is "help"
Options and subcommands are filtered. Now Only subcommands are shown when subcommands is "help". Both subcommands and options are shown when subcommand is other than "help" Change-Id: Iad9def1b2909af33fd23b0c89559b8de30fa6547 Closes-Bug: #1399747
This commit is contained in:
parent
7971b36c52
commit
e2afc016b2
@ -1,15 +1,27 @@
|
||||
_cinder_opts="" # lazy init
|
||||
_cinder_flags="" # lazy init
|
||||
_cinder_opts_exp="" # lazy init
|
||||
|
||||
_cinder()
|
||||
{
|
||||
local cur prev opts
|
||||
local cur prev cbc cflags
|
||||
COMPREPLY=()
|
||||
cur="${COMP_WORDS[COMP_CWORD]}"
|
||||
prev="${COMP_WORDS[COMP_CWORD-1]}"
|
||||
|
||||
opts="$(cinder bash_completion)"
|
||||
if [ "x$_cinder_opts" == "x" ] ; then
|
||||
cbc="`cinder bash-completion | sed -e "s/ *-h */ /" -e "s/ *-i */ /"`"
|
||||
_cinder_opts="`echo "$cbc" | sed -e "s/--[a-z0-9_-]*//g" -e "s/ */ /g"`"
|
||||
_cinder_flags="`echo " $cbc" | sed -e "s/ [^-][^-][a-z0-9_-]*//g" -e "s/ */ /g"`"
|
||||
fi
|
||||
|
||||
COMPLETION_CACHE=~/.cinderclient/*/*-cache
|
||||
opts+=" "$(cat $COMPLETION_CACHE 2> /dev/null | tr '\n' ' ')
|
||||
|
||||
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
|
||||
if [[ "$prev" != "help" ]] ; then
|
||||
COMPLETION_CACHE=~/.cinderclient/*/*-cache
|
||||
cflags="$_cinder_flags $_cinder_opts "$(cat $COMPLETION_CACHE 2> /dev/null | tr '\n' ' ')
|
||||
COMPREPLY=($(compgen -W "${cflags}" -- ${cur}))
|
||||
else
|
||||
COMPREPLY=($(compgen -W "${_cinder_opts}" -- ${cur}))
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
complete -F _cinder cinder
|
||||
|
Loading…
Reference in New Issue
Block a user