diff options
author | yatin karel <yatin.karel@nectechnologies.in> | 2014-12-05 23:49:42 +0530 |
---|---|---|
committer | yatin <yatin.karel@nectechnologies.in> | 2015-03-17 14:21:48 +0000 |
commit | e2afc016b248cf618a7076ecac492c4496e1e54c (patch) | |
tree | 7c5f8a0a3dba990f84fda20ef390840225d25a48 /tools | |
parent | 7971b36c523a56d6aa243574aed7934a9a8db6f3 (diff) | |
download | python-cinderclient-e2afc016b248cf618a7076ecac492c4496e1e54c.tar.gz |
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
Diffstat (limited to 'tools')
-rw-r--r-- | tools/cinder.bash_completion | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/tools/cinder.bash_completion b/tools/cinder.bash_completion index 060bf1f..60127b1 100644 --- a/tools/cinder.bash_completion +++ b/tools/cinder.bash_completion @@ -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)" - - COMPLETION_CACHE=~/.cinderclient/*/*-cache - opts+=" "$(cat $COMPLETION_CACHE 2> /dev/null | tr '\n' ' ') + 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 - 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 |