summaryrefslogtreecommitdiff
path: root/plugins/supervisor/_supervisorctl
diff options
context:
space:
mode:
authorHenry Yan <yanhonglei@gmail.com>2012-10-14 22:06:48 +0800
committerHenry Yan <yanhonglei@gmail.com>2012-10-14 22:06:48 +0800
commit3ad138a08aa3de1246cffde0b7187ffcd017298c (patch)
tree4060de701525c143c8f73244b5d5a5ddd69273ba /plugins/supervisor/_supervisorctl
parent3fe1e5c78760b81335eef501ef7f89875ae7753a (diff)
parentc2ae9e09ca1f33ff1e13e629a0b2e6bdd19f83a9 (diff)
downloadzsh-3ad138a08aa3de1246cffde0b7187ffcd017298c.tar.gz
zsh-3ad138a08aa3de1246cffde0b7187ffcd017298c.tar.bz2
zsh-3ad138a08aa3de1246cffde0b7187ffcd017298c.zip
Merge remote-tracking branch 'upstream/master'
* upstream/master: (35 commits) make README reflect latest changes URL Tools Plugin added a comment to the composer installation alias added Composer completition and aliases added two aliases to Symfony2 Plugin fix test aliases Missing comment line look for test/unit instead of test/units. #typo Correct error message. Clean up doc Jira ticket shortcut to browse existing issues or create a new issue. Add zeus plugin Make rvm prompt function a bit cleaner Fixing the rvm_prompt_info command, now it will not show empty parens if no rvm is currently being used Add link to gist Updated documentation for agnoster theme Use HISTFILE evironment variable directly rather than copying it added autojump plugin support for mac os x + port Colemak plugin Per directory history plugin ...
Diffstat (limited to 'plugins/supervisor/_supervisorctl')
-rw-r--r--plugins/supervisor/_supervisorctl136
1 files changed, 136 insertions, 0 deletions
diff --git a/plugins/supervisor/_supervisorctl b/plugins/supervisor/_supervisorctl
new file mode 100644
index 000000000..d159f20e0
--- /dev/null
+++ b/plugins/supervisor/_supervisorctl
@@ -0,0 +1,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 "$@"