Blame view
repos/robbyrussell/oh-my-zsh/plugins/supervisor/_supervisorctl
4.69 KB
|
093a6c34b
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 |
#compdef supervisorctl
typeset -A opt_args
local context state line
_supervisorctl() {
_arguments -s -S \
{--configuration,-c}"[configuration file path (default /etc/supervisor.conf)]:FILENAME:_files" \
{--help,-h}"[print usage message and exit]:" \
{--interactive,-i}"[start an interactive shell after executing commands]" \
{--serverurl,-s}"[URL on which supervisord server is listening (default "http://localhost:9001").]" \
{--username,-u}"[username to use for authentication with server]:USERNAME:_users" \
{--password,-p}"[password to use for authentication with server]:PASSWORD:" \
{--history-file,-r}"[keep a readline history (if readline is available)]:FILENAME:_files" \
"*::supervisorctl commands:_supervisorctl_command"
}
(( $+functions[_supervisorctl_command] )) ||
_supervisorctl_command() {
local cmd ret=1
(( $+supervisorctl_cmds )) || _supervisorctl_cmds=(
"add:Activates any updates in config for process/group" \
"avail:Display all configured processes" \
"clear:Clear process/multiple-process/all-process log files" \
"exit:Exit the supervisor shell." \
"fg:Connect to a process in foreground mode" \
"maintail:tail of supervisor main log file" \
"open:Connect to a remote supervisord process. (for UNIX domain socket, use unix:///socket/path)" \
"pid:Get the PID of supervisord." \
"quit:Exit the supervisor shell." \
"reload:Restart the remote supervisord." \
"remove:Removes process/group from active config" \
"reread:Reload the daemon's configuration files" \
"restart:Restart process or group." \
"shutdown:Shut the remote supervisord down." \
"start:Start process or groups." \
"status:Get process status info." \
"stop:Stop process or group." \
"tail:tail of process stdout" \
"update:Reload config and add/remove as necessary" \
"version:Show the version of the remote supervisord process" \
"help:Show help" \
)
if (( CURRENT == 1 )); then
_describe -t commands 'supervisorctl subcommand' _supervisorctl_cmds \
|| compadd "$@" - ${(s.:.)${(j.:.)_supervisorctl_syns}}
else
local curcontext="$curcontext"
cmd="${${_supervisorctl_cmds[(r)$words[1]:*]%%:*}:-${(k)_supervisorctl_syns[(r)(*:|)$words[1](:*|)]}}"
if (( $#cmd )); then
curcontext="${curcontext%:*:*}:supervisorctl-${cmd}:"
_call_function ret _supervisorctl_$cmd || _message 'no more arguments'
else
_message "unknown supervisorctl command: $words[1]"
fi
return ret
fi
}
# get supervisor contoroll processes
(( $+functions[_get_supervisor_procs] )) ||
_get_supervisor_procs() {
local cache_policy
zstyle -s ":completion:${curcontext}:" cache-policy cache_policy
if [[ -z "$cache_policy" ]]; then
zstyle ":completion:${curcontext}:" cache-policy _supervisor_procs_caching_policy
fi
if ( [[ ${+_supervisor_procs} -eq 0 ]] || _cache_invalid supervisor_procs ) \
&& ! _retrieve_cache supervisor_procs; then
_supervisor_procs=(${${(f)"$(supervisorctl status >/dev/null 2>&1 | awk -F' ' '{print $1}')"}})
_store_cache supervisor_procs _supervisor_procs
fi
local expl
_wanted supervisor_procs expl 'supervisor processes' compadd -a _supervisor_procs
}
_supervisor_procs_caching_policy() {
local -a oldp
oldp=( "$1"(Nmw+1) )
(( $#oldp ))
}
(( $+functions[_supervisorctl_add] )) ||
_supervisorctl_add() {
_arguments -s \
"--help[use help system]" \
"*::supervisorctl commands:_supervisorctl"
}
(( $+functions[_supervisorctl_help] )) ||
_supervisorctl_help() {
_arguments -s \
"*:supervisorctl commands:_supervisorctl"
}
(( $+functions[_supervisorctl_maintail] )) ||
_supervisorctl_maintail() {
_arguments -s \
'-f[Continuous tail of supervisor main log file (Ctrl-C to exit)]'
}
(( $+functions[_supervisorctl_start] )) ||
_supervisorctl_start() {
# TODO: add 'all'
_arguments -s \
'*::supvervisor process:_get_supervisor_procs'
}
(( $+functions[_supervisorctl_status] )) ||
_supervisorctl_status() {
_arguments \
'*::supvervisor process:_get_supervisor_procs'
}
(( $+functions[_supervisorctl_stop] )) ||
_supervisorctl_stop() {
# TODO: add 'all'
_arguments -s \
'*::supvervisor process:_get_supervisor_procs'
}
(( $+functions[_supervisorctl_tail] )) ||
_supervisorctl_tail() {
# TODO: add 'stderr'
_arguments -s \
'-f[Continuous tail of named process stdout Ctrl-C to exit.]' \
'*::supvervisor process:_get_supervisor_procs'
}
_supervisorctl "$@"
|