You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							136 lines
						
					
					
						
							4.7 KiB
						
					
					
				
			
		
		
	
	
							136 lines
						
					
					
						
							4.7 KiB
						
					
					
				| #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 "$@"
 | |
| 
 |