add bash completion script

This patch add a script mistral.bash_completion which enables
auto-completion of mistral CLI in bash environmnet when running:

python setup.py install
or
python setup.py develop

test:
mistral [tab][tab]
mistral workf[tab][tab]
mistral workflow-get -[tab][tab]

Change-Id: I8e25f3a90c09e6f09877d9f66cc1f8aa44d6e6f6
Implements: blueprint add-bash-completion-script
This commit is contained in:
LingxianKong
2015-02-27 19:03:54 +08:00
parent f7b8b70daf
commit 168f462d90
2 changed files with 69 additions and 0 deletions

View File

@@ -19,6 +19,10 @@ author-email = openstack-dev@lists.openstack.org
packages = packages =
mistralclient mistralclient
data_files =
/etc/bash_completion.d =
tools/mistral.bash_completion
[entry_points] [entry_points]
console_scripts = console_scripts =
mistral = mistralclient.shell:main mistral = mistralclient.shell:main

View File

@@ -0,0 +1,65 @@
#!/bin/bash
_mistral()
{
declare -A SUBCOMMANDS
declare -A OPTS
OPTS["action-create"]="-h --help -f --format -c --column --max-width --quote"
OPTS["action-delete"]="-h --help"
OPTS["action-get"]="-h --help -f --format -c --column --max-width --variable --prefix"
OPTS["action-get-definition"]="-h --help"
OPTS["action-list"]="-h --help -f --format -c --column --max-width --quote"
OPTS["action-update"]="-h --help -f --format -c --column --max-width --quote"
OPTS["complete"]="-h --help --name --shell"
OPTS["cron-trigger-create"]="-h --help -f --format -c --column --max-width --variable --prefix"
OPTS["cron-trigger-delete"]="-h --help"
OPTS["cron-trigger-get"]="-h --help -f --format -c --column --max-width --variable --prefix"
OPTS["cron-trigger-list"]="-h --help -f --format -c --column --max-width --quote"
OPTS["environment-create"]="-h --help -f --format -c --column --max-width --variable --prefix"
OPTS["environment-delete"]="-h --help"
OPTS["environment-get"]="-h --help -f --format -c --column --max-width --variable --prefix"
OPTS["environment-list"]="-h --help -f --format -c --column --max-width --quote"
OPTS["environment-update"]="-h --help -f --format -c --column --max-width --variable --prefix"
OPTS["execution-create"]="-h --help -f --format -c --column --max-width --variable --prefix"
OPTS["execution-delete"]="-h --help"
OPTS["execution-get"]="-h --help -f --format -c --column --max-width --variable --prefix"
OPTS["execution-get-input"]="-h --help"
OPTS["execution-get-output"]="-h --help"
OPTS["execution-list"]="-h --help -f --format -c --column --max-width --quote"
OPTS["execution-update"]="-h --help -f --format -c --column --max-width --variable --prefix"
OPTS["help"]="-h --help"
OPTS["task-get"]="-h --help -f --format -c --column --max-width --variable --prefix"
OPTS["task-get-input"]="-h --help"
OPTS["task-get-result"]="-h --help"
OPTS["task-list"]="-h --help -f --format -c --column --max-width --quote"
OPTS["task-update"]="-h --help -f --format -c --column --max-width --variable --prefix"
OPTS["workbook-create"]="-h --help -f --format -c --column --max-width --variable --prefix"
OPTS["workbook-delete"]="-h --help"
OPTS["workbook-get"]="-h --help -f --format -c --column --max-width --variable --prefix"
OPTS["workbook-get-definition"]="-h --help"
OPTS["workbook-list"]="-h --help -f --format -c --column --max-width --quote"
OPTS["workbook-update"]="-h --help -f --format -c --column --max-width --variable --prefix"
OPTS["workflow-create"]="-h --help -f --format -c --column --max-width --quote"
OPTS["workflow-delete"]="-h --help"
OPTS["workflow-get"]="-h --help -f --format -c --column --max-width --variable --prefix"
OPTS["workflow-get-definition"]="-h --help"
OPTS["workflow-list"]="-h --help -f --format -c --column --max-width --quote"
OPTS["workflow-update"]="-h --help -f --format -c --column --max-width --quote"
COMMANDS="${!OPTS[*]}"
COMPREPLY=()
local cur="${COMP_WORDS[COMP_CWORD]}"
local prev="${COMP_WORDS[COMP_CWORD-1]}"
if [[ $cur =~ (\.|\~|\/).* ]] ; then
_filedir
elif [ $COMP_CWORD == "1" ] ; then
COMPREPLY=($(compgen -W "$COMMANDS" -- ${cur}))
elif [ $COMP_CWORD == "2" ] ; then
COMPREPLY=($(compgen -W "${OPTS[${prev}]}" -- ${cur}))
fi
return 0
}
complete -F _mistral mistral