python-mistralclient/tools/mistral.bash_completion
LingxianKong 168f462d90 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
2015-02-27 19:06:51 +08:00

66 lines
3.4 KiB
Bash

#!/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