Merge pull request #1863 from mssola/bash-completion
contrib: added bash completion
This commit is contained in:
commit
855374077b
|
@ -0,0 +1,264 @@
|
||||||
|
# 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
|
Loading…
Reference in New Issue