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:
@@ -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
|
||||
|
Reference in New Issue
Block a user