attempting a simple completion file
This commit is contained in:
parent
16c3747605
commit
f1e46a7b21
99
etc/new.triton.completion
Normal file
99
etc/new.triton.completion
Normal file
@ -0,0 +1,99 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
_triton_default_words() {
|
||||
# main command
|
||||
local words=(
|
||||
-h --help
|
||||
--version
|
||||
-v --verbose
|
||||
help ?
|
||||
account whoami
|
||||
info
|
||||
keys
|
||||
create-instance create
|
||||
instances insts
|
||||
instance inst
|
||||
instance-audit
|
||||
start-instance start
|
||||
stop-instance stop
|
||||
reboot-instance reboot
|
||||
delete-instance delete
|
||||
wait-instance wait
|
||||
ssh
|
||||
images imgs
|
||||
image img
|
||||
packages pkgs
|
||||
package pkg
|
||||
networks
|
||||
network
|
||||
)
|
||||
echo "${words[*]}"
|
||||
}
|
||||
|
||||
_triton_words() {
|
||||
local cmd=$1
|
||||
local curword=${COMP_WORDS[COMP_CWORD]}
|
||||
if [[ $cmd == $curword ]]; then
|
||||
COMPREPLY=($(compgen -W "$(_triton_default_words)" -- "$curword"))
|
||||
return
|
||||
fi
|
||||
|
||||
# assume everything supports this
|
||||
local words=(-j --json -h --help)
|
||||
|
||||
case "$cmd" in
|
||||
account|whoami) ;;
|
||||
info) ;;
|
||||
keys) ;;
|
||||
create|create-instance)
|
||||
words+=(-n --name --dry-run -w --wait -q --quiet)
|
||||
;;
|
||||
start|start-instance|stop|stop-instance|reboot|reboot-instance|delete|delete-instance)
|
||||
words=(-h --help -w --wait)
|
||||
;;
|
||||
wait|wait-instance)
|
||||
words+=(-q --quiet)
|
||||
;;
|
||||
insts|instances)
|
||||
words+=(-H -o -s)
|
||||
;;
|
||||
inst|instance) ;;
|
||||
images|imgs)
|
||||
words+=(-a --all -H -o -s -l --long)
|
||||
;;
|
||||
image|img) ;;
|
||||
packages|pkgs)
|
||||
words+=(-H -o -s -l --long)
|
||||
;;
|
||||
package|pkg) ;;
|
||||
networks)
|
||||
words+=(-H -o -s -l --long)
|
||||
;;
|
||||
network) ;;
|
||||
ssh)
|
||||
words+=()
|
||||
;;
|
||||
*)
|
||||
words=($(_triton_default_words))
|
||||
;;
|
||||
esac
|
||||
|
||||
COMPREPLY=($(compgen -W "${words[*]}" -- "$curword"))
|
||||
}
|
||||
|
||||
_triton() {
|
||||
local cur=$COMP_CWORD
|
||||
|
||||
local i word
|
||||
for ((i = 1; i <= COMP_CWORD; i++)); do
|
||||
word=${COMP_WORDS[i]}
|
||||
if ((i < COMP_CWORD)) && [[ ${word:0:1} == '-' ]]; then
|
||||
continue
|
||||
fi
|
||||
_triton_words "$word"
|
||||
break
|
||||
done
|
||||
|
||||
}
|
||||
|
||||
complete -F _triton triton
|
Reference in New Issue
Block a user