265 lines
3.9 KiB
Plaintext
265 lines
3.9 KiB
Plaintext
# This completion file has been inspired by the completion files of the Git and
|
|
# the Docker projects.
|
|
|
|
__consulcomp() {
|
|
local all c s=$'\n' IFS=' '$'\t'$'\n'
|
|
local cur="${COMP_WORDS[COMP_CWORD]}"
|
|
|
|
for c in $1; do
|
|
case "$c$4" in
|
|
--*=*) all="$all$c$4$s" ;;
|
|
*) all="$all$c$4 $s" ;;
|
|
esac
|
|
done
|
|
IFS=$s
|
|
COMPREPLY=($(compgen -P "$2" -W "$all" -- "$cur"))
|
|
return
|
|
}
|
|
|
|
__consul_agent() {
|
|
local subcommands="
|
|
-advertise
|
|
-advertise-wan
|
|
-atlas
|
|
-atlas-join
|
|
-atlas-token
|
|
-atlas-endpoint
|
|
-bootstrap
|
|
-bind
|
|
-http-port
|
|
-bootstrap-expect
|
|
-client
|
|
-config-file
|
|
-config-dir
|
|
-data-dir
|
|
-recursor
|
|
-dc
|
|
-encrypt
|
|
-join
|
|
-join-wan
|
|
-retry-join
|
|
-retry-interval
|
|
-retry-max-wan
|
|
-log-level
|
|
-node
|
|
-protocol
|
|
-rejoin
|
|
-server
|
|
-syslog
|
|
-ui
|
|
-ui-dir
|
|
-pid-file
|
|
"
|
|
__consulcomp "-help $subcommands"
|
|
}
|
|
|
|
__consul_configtest() {
|
|
local subcommands="
|
|
-config-file
|
|
-config-dir
|
|
"
|
|
__consulcomp "-help $subcommands"
|
|
}
|
|
|
|
__consul_event() {
|
|
local subcommands="
|
|
-http-addr
|
|
-datacenter
|
|
-name
|
|
-node
|
|
-service
|
|
-tag
|
|
-token
|
|
"
|
|
__consulcomp "-help $subcommands"
|
|
}
|
|
|
|
__consul_exec() {
|
|
local subcommands="
|
|
-http-addr
|
|
-datacenter
|
|
-prefix
|
|
-node
|
|
-service
|
|
-tag
|
|
-wait
|
|
-wait-repl
|
|
-token
|
|
"
|
|
|
|
__consulcomp "-help $subcommands"
|
|
}
|
|
|
|
__consul_force_leave() {
|
|
__consulcomp "-help -rpc-addr"
|
|
}
|
|
|
|
__consul_info() {
|
|
__consulcomp "-help -rpc-addr"
|
|
}
|
|
|
|
__consul_join() {
|
|
local subcommands="
|
|
-rpc-addr
|
|
-wan
|
|
"
|
|
|
|
__consulcomp "-help $subcommands"
|
|
}
|
|
|
|
__consul_keygen() {
|
|
# NOTE: left empty on purpose.
|
|
return
|
|
}
|
|
|
|
__consul_keyring() {
|
|
local subcommands="
|
|
-install
|
|
-list
|
|
-remove
|
|
-token
|
|
-use
|
|
-rpc-addr
|
|
"
|
|
|
|
__consulcomp "-help $subcommands"
|
|
}
|
|
|
|
__consul_leave() {
|
|
__consulcomp "-help -rpc-addr"
|
|
}
|
|
|
|
__consul_lock() {
|
|
local subcommands="
|
|
-http-addr
|
|
-n
|
|
-name
|
|
-token
|
|
-pass-stdin
|
|
-try
|
|
-monitor-retry
|
|
-verbose
|
|
"
|
|
|
|
__consulcomp "-help $subcommands"
|
|
}
|
|
|
|
__consul_maint() {
|
|
local subcommands="
|
|
-enable
|
|
-disable
|
|
-reason
|
|
-service
|
|
-token
|
|
-http-addr
|
|
"
|
|
|
|
__consulcomp "-help $subcommands"
|
|
}
|
|
|
|
__consul_members() {
|
|
local subcommands="
|
|
-detailed
|
|
-rpc-addr
|
|
-status
|
|
-wan
|
|
"
|
|
|
|
__consulcomp "-help $subcommands"
|
|
}
|
|
|
|
__consul_monitor() {
|
|
local subcommands="
|
|
-log-level
|
|
-rpc-addr
|
|
"
|
|
|
|
__consulcomp "-help $subcommands"
|
|
}
|
|
|
|
__consul_reload() {
|
|
__consulcomp "-help -rpc-addr"
|
|
}
|
|
|
|
__consul_rtt() {
|
|
local subcommands="
|
|
-wan
|
|
-http-addr
|
|
"
|
|
|
|
__consulcomp "-help $subcommands"
|
|
}
|
|
|
|
__consul_version() {
|
|
# NOTE: left empty on purpose.
|
|
return
|
|
}
|
|
|
|
__consul_watch() {
|
|
local subcommands="
|
|
-http-addr
|
|
-datacenter
|
|
-token
|
|
-key
|
|
-name
|
|
-passingonly
|
|
-prefix
|
|
-service
|
|
-state
|
|
-tag
|
|
-type
|
|
"
|
|
|
|
__consulcomp "-help $subcommands"
|
|
}
|
|
|
|
__consul() {
|
|
local c=1 command
|
|
while [ $c -lt $COMP_CWORD ]; do
|
|
cmd="${COMP_WORDS[c]}"
|
|
case "$cmd" in
|
|
-*) ;;
|
|
*) command="$cmd"
|
|
esac
|
|
c=$((++c))
|
|
done
|
|
|
|
local cmds="
|
|
agent
|
|
configtest
|
|
event
|
|
exec
|
|
force-leave
|
|
info
|
|
join
|
|
keygen
|
|
keyring
|
|
leave
|
|
lock
|
|
maint
|
|
members
|
|
monitor
|
|
reload
|
|
rtt
|
|
version
|
|
watch
|
|
"
|
|
|
|
local globalflags="--help --version"
|
|
|
|
# Complete a command.
|
|
if [ $c -eq $COMP_CWORD -a -z "$command" ]; then
|
|
case "${COMP_WORDS[COMP_CWORD]}" in
|
|
-*|--*) __consulcomp "$globalflags" ;;
|
|
*) __consulcomp "$cmds" ;;
|
|
esac
|
|
return
|
|
fi
|
|
|
|
# Command options.
|
|
local completion_func="__consul_${command//-/_}"
|
|
declare -f $completion_func >/dev/null && $completion_func && return
|
|
}
|
|
|
|
complete -o default -o nospace -F __consul consul
|