Blame view

repos/robbyrussell/oh-my-zsh/plugins/supervisor/_supervisorctl 4.69 KB
093a6c34b   mj   Squashed 'repos/r...
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 "$@"