python-vitrageclient/tools/vitrage.bash_completion
Eyal 88ca82c372 update vitrage bash completion
Change-Id: If6d4ab7800bd42d60e0e208499bdaab47cd225d3
2016-11-21 15:12:14 +02:00

64 lines
1.9 KiB
Plaintext

_vitrage()
{
local cur prev words
COMPREPLY=()
_get_comp_words_by_ref -n : cur prev words
# Command data:
cmds='alarm complete help rca resource template topology'
cmds_alarm='list'
cmds_alarm_list='-h --help -f --format -c --column --max-width --noindent --quote'
cmds_complete='-h --help --name --shell'
cmds_help='-h --help'
cmds_rca='show'
cmds_rca_show='-h --help -f --format -c --column --max-width --noindent --variable --prefix'
cmds_resource='list show'
cmds_resource_list='-h --help -f --format -c --column --max-width --noindent --quote --type'
cmds_resource_show='-h --help -f --format -c --column --max-width --noindent --variable --prefix'
cmds_template='list show validate'
cmds_template_list='-h --help -f --format -c --column --max-width --noindent --quote'
cmds_template_show='-h --help -f --format -c --column --max-width --noindent --variable --prefix'
cmds_template_validate='-h --help -f --format -c --column --max-width --noindent --variable --prefix --path'
cmds_topology='show'
cmds_topology_show='-h --help -f --format -c --column --max-width --noindent --variable --prefix --filter --limit --root --graph-type'
dash=-
underscore=_
cmd=""
words[0]=""
completed="${cmds}"
for var in "${words[@]:1}"
do
if [[ ${var} == -* ]] ; then
break
fi
if [ -z "${cmd}" ] ; then
proposed="${var}"
else
proposed="${cmd}_${var}"
fi
local i="cmds_${proposed}"
i=${i//$dash/$underscore}
local comp="${!i}"
if [ -z "${comp}" ] ; then
break
fi
if [[ ${comp} == -* ]] ; then
if [[ ${cur} != -* ]] ; then
completed=""
break
fi
fi
cmd="${proposed}"
completed="${comp}"
done
if [ -z "${completed}" ] ; then
COMPREPLY=( $( compgen -f -- "$cur" ) $( compgen -d -- "$cur" ) )
else
COMPREPLY=( $(compgen -W "${completed}" -- ${cur}) )
fi
return 0
}
complete -F _vitrage vitrage