invoker 1.0.4 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +5 -0
- data/.rubocop.yml +30 -0
- data/.travis.yml +1 -0
- data/Gemfile +1 -0
- data/bin/invoker +4 -8
- data/invoker.gemspec +10 -11
- data/lib/invoker.rb +95 -21
- data/lib/invoker/cli.rb +126 -0
- data/lib/invoker/cli/pinger.rb +23 -0
- data/lib/invoker/cli/question.rb +15 -0
- data/lib/invoker/cli/tail.rb +34 -0
- data/lib/invoker/cli/tail_watcher.rb +34 -0
- data/lib/invoker/command_worker.rb +28 -2
- data/lib/invoker/commander.rb +34 -236
- data/lib/invoker/config.rb +5 -0
- data/lib/invoker/daemon.rb +126 -0
- data/lib/invoker/dns_cache.rb +23 -0
- data/lib/invoker/errors.rb +1 -0
- data/lib/invoker/ipc.rb +45 -0
- data/lib/invoker/ipc/add_command.rb +12 -0
- data/lib/invoker/ipc/add_http_command.rb +10 -0
- data/lib/invoker/ipc/base_command.rb +24 -0
- data/lib/invoker/ipc/client_handler.rb +26 -0
- data/lib/invoker/ipc/dns_check_command.rb +16 -0
- data/lib/invoker/ipc/list_command.rb +11 -0
- data/lib/invoker/ipc/message.rb +170 -0
- data/lib/invoker/ipc/message/list_response.rb +33 -0
- data/lib/invoker/ipc/message/tail_response.rb +10 -0
- data/lib/invoker/ipc/ping_command.rb +10 -0
- data/lib/invoker/ipc/reload_command.rb +12 -0
- data/lib/invoker/ipc/remove_command.rb +12 -0
- data/lib/invoker/{command_listener → ipc}/server.rb +6 -11
- data/lib/invoker/ipc/tail_command.rb +11 -0
- data/lib/invoker/ipc/unix_client.rb +60 -0
- data/lib/invoker/parsers/config.rb +1 -0
- data/lib/invoker/power/balancer.rb +17 -7
- data/lib/invoker/power/config.rb +6 -3
- data/lib/invoker/power/dns.rb +22 -21
- data/lib/invoker/power/http_response.rb +1 -1
- data/lib/invoker/power/power.rb +3 -0
- data/lib/invoker/power/powerup.rb +3 -2
- data/lib/invoker/power/setup.rb +6 -4
- data/lib/invoker/process_manager.rb +187 -0
- data/lib/invoker/process_printer.rb +27 -38
- data/lib/invoker/reactor.rb +19 -38
- data/lib/invoker/reactor/reader.rb +53 -0
- data/lib/invoker/version.rb +1 -1
- data/readme.md +1 -1
- data/spec/invoker/cli/pinger_spec.rb +22 -0
- data/spec/invoker/cli/tail_watcher_spec.rb +39 -0
- data/spec/invoker/cli_spec.rb +27 -0
- data/spec/invoker/command_worker_spec.rb +30 -0
- data/spec/invoker/commander_spec.rb +57 -127
- data/spec/invoker/config_spec.rb +21 -0
- data/spec/invoker/daemon_spec.rb +34 -0
- data/spec/invoker/invoker_spec.rb +31 -0
- data/spec/invoker/ipc/client_handler_spec.rb +44 -0
- data/spec/invoker/ipc/dns_check_command_spec.rb +32 -0
- data/spec/invoker/ipc/message/list_response_spec.rb +22 -0
- data/spec/invoker/ipc/message_spec.rb +45 -0
- data/spec/invoker/ipc/unix_client_spec.rb +29 -0
- data/spec/invoker/power/setup_spec.rb +1 -1
- data/spec/invoker/process_manager_spec.rb +98 -0
- data/spec/invoker/reactor_spec.rb +6 -0
- data/spec/spec_helper.rb +15 -24
- metadata +107 -77
- data/lib/invoker/command_listener/client.rb +0 -45
- data/lib/invoker/parsers/option_parser.rb +0 -106
- data/lib/invoker/power.rb +0 -7
- data/lib/invoker/runner.rb +0 -98
- data/spec/invoker/command_listener/client_spec.rb +0 -52
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: invoker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hemant Kumar
|
@@ -9,202 +9,188 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-
|
12
|
+
date: 2014-04-11 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
|
-
name:
|
15
|
+
name: thor
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
-
- - ~>
|
18
|
+
- - "~>"
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version:
|
20
|
+
version: '0.19'
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
|
-
- - ~>
|
25
|
+
- - "~>"
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version:
|
27
|
+
version: '0.19'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: rainbow
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
|
-
- - ~>
|
32
|
+
- - "~>"
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version:
|
34
|
+
version: '2.0'
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
|
-
- - ~>
|
39
|
+
- - "~>"
|
40
40
|
- !ruby/object:Gem::Version
|
41
|
-
version:
|
41
|
+
version: '2.0'
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: iniparse
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
|
-
- - ~>
|
46
|
+
- - "~>"
|
47
47
|
- !ruby/object:Gem::Version
|
48
|
-
version: 1.1
|
48
|
+
version: '1.1'
|
49
49
|
type: :runtime
|
50
50
|
prerelease: false
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
|
-
- - ~>
|
53
|
+
- - "~>"
|
54
54
|
- !ruby/object:Gem::Version
|
55
|
-
version: 1.1
|
55
|
+
version: '1.1'
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
57
|
name: formatador
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
59
59
|
requirements:
|
60
|
-
- - ~>
|
60
|
+
- - "~>"
|
61
61
|
- !ruby/object:Gem::Version
|
62
|
-
version: 0.2
|
62
|
+
version: '0.2'
|
63
63
|
type: :runtime
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
|
-
- - ~>
|
67
|
+
- - "~>"
|
68
68
|
- !ruby/object:Gem::Version
|
69
|
-
version: 0.2
|
69
|
+
version: '0.2'
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: eventmachine
|
72
72
|
requirement: !ruby/object:Gem::Requirement
|
73
73
|
requirements:
|
74
|
-
- - ~>
|
74
|
+
- - "~>"
|
75
75
|
- !ruby/object:Gem::Version
|
76
|
-
version: 1.0
|
76
|
+
version: '1.0'
|
77
77
|
type: :runtime
|
78
78
|
prerelease: false
|
79
79
|
version_requirements: !ruby/object:Gem::Requirement
|
80
80
|
requirements:
|
81
|
-
- - ~>
|
81
|
+
- - "~>"
|
82
82
|
- !ruby/object:Gem::Version
|
83
|
-
version: 1.0
|
83
|
+
version: '1.0'
|
84
84
|
- !ruby/object:Gem::Dependency
|
85
85
|
name: em-proxy
|
86
86
|
requirement: !ruby/object:Gem::Requirement
|
87
87
|
requirements:
|
88
|
-
- - ~>
|
88
|
+
- - "~>"
|
89
89
|
- !ruby/object:Gem::Version
|
90
|
-
version: 0.1
|
90
|
+
version: '0.1'
|
91
91
|
type: :runtime
|
92
92
|
prerelease: false
|
93
93
|
version_requirements: !ruby/object:Gem::Requirement
|
94
94
|
requirements:
|
95
|
-
- - ~>
|
95
|
+
- - "~>"
|
96
96
|
- !ruby/object:Gem::Version
|
97
|
-
version: 0.1
|
97
|
+
version: '0.1'
|
98
98
|
- !ruby/object:Gem::Dependency
|
99
99
|
name: rubydns
|
100
100
|
requirement: !ruby/object:Gem::Requirement
|
101
101
|
requirements:
|
102
|
-
- - ~>
|
102
|
+
- - "~>"
|
103
103
|
- !ruby/object:Gem::Version
|
104
|
-
version: 0.
|
104
|
+
version: '0.7'
|
105
105
|
type: :runtime
|
106
106
|
prerelease: false
|
107
107
|
version_requirements: !ruby/object:Gem::Requirement
|
108
108
|
requirements:
|
109
|
-
- - ~>
|
109
|
+
- - "~>"
|
110
110
|
- !ruby/object:Gem::Version
|
111
|
-
version: 0.
|
111
|
+
version: '0.7'
|
112
112
|
- !ruby/object:Gem::Dependency
|
113
113
|
name: uuid
|
114
114
|
requirement: !ruby/object:Gem::Requirement
|
115
115
|
requirements:
|
116
|
-
- - ~>
|
116
|
+
- - "~>"
|
117
117
|
- !ruby/object:Gem::Version
|
118
|
-
version: 2.3
|
118
|
+
version: '2.3'
|
119
119
|
type: :runtime
|
120
120
|
prerelease: false
|
121
121
|
version_requirements: !ruby/object:Gem::Requirement
|
122
122
|
requirements:
|
123
|
-
- - ~>
|
123
|
+
- - "~>"
|
124
124
|
- !ruby/object:Gem::Version
|
125
|
-
version: 2.3
|
126
|
-
- !ruby/object:Gem::Dependency
|
127
|
-
name: highline
|
128
|
-
requirement: !ruby/object:Gem::Requirement
|
129
|
-
requirements:
|
130
|
-
- - ~>
|
131
|
-
- !ruby/object:Gem::Version
|
132
|
-
version: 1.6.19
|
133
|
-
type: :runtime
|
134
|
-
prerelease: false
|
135
|
-
version_requirements: !ruby/object:Gem::Requirement
|
136
|
-
requirements:
|
137
|
-
- - ~>
|
138
|
-
- !ruby/object:Gem::Version
|
139
|
-
version: 1.6.19
|
125
|
+
version: '2.3'
|
140
126
|
- !ruby/object:Gem::Dependency
|
141
127
|
name: http-parser-lite
|
142
128
|
requirement: !ruby/object:Gem::Requirement
|
143
129
|
requirements:
|
144
|
-
- - ~>
|
130
|
+
- - "~>"
|
145
131
|
- !ruby/object:Gem::Version
|
146
|
-
version: 0.6
|
132
|
+
version: '0.6'
|
147
133
|
type: :runtime
|
148
134
|
prerelease: false
|
149
135
|
version_requirements: !ruby/object:Gem::Requirement
|
150
136
|
requirements:
|
151
|
-
- - ~>
|
137
|
+
- - "~>"
|
152
138
|
- !ruby/object:Gem::Version
|
153
|
-
version: 0.6
|
139
|
+
version: '0.6'
|
154
140
|
- !ruby/object:Gem::Dependency
|
155
141
|
name: dotenv
|
156
142
|
requirement: !ruby/object:Gem::Requirement
|
157
143
|
requirements:
|
158
|
-
- - ~>
|
144
|
+
- - "~>"
|
159
145
|
- !ruby/object:Gem::Version
|
160
|
-
version: 0.9
|
146
|
+
version: '0.9'
|
161
147
|
type: :runtime
|
162
148
|
prerelease: false
|
163
149
|
version_requirements: !ruby/object:Gem::Requirement
|
164
150
|
requirements:
|
165
|
-
- - ~>
|
151
|
+
- - "~>"
|
166
152
|
- !ruby/object:Gem::Version
|
167
|
-
version: 0.9
|
153
|
+
version: '0.9'
|
168
154
|
- !ruby/object:Gem::Dependency
|
169
155
|
name: rspec
|
170
156
|
requirement: !ruby/object:Gem::Requirement
|
171
157
|
requirements:
|
172
|
-
- -
|
158
|
+
- - ">="
|
173
159
|
- !ruby/object:Gem::Version
|
174
160
|
version: '0'
|
175
161
|
type: :development
|
176
162
|
prerelease: false
|
177
163
|
version_requirements: !ruby/object:Gem::Requirement
|
178
164
|
requirements:
|
179
|
-
- -
|
165
|
+
- - ">="
|
180
166
|
- !ruby/object:Gem::Version
|
181
167
|
version: '0'
|
182
168
|
- !ruby/object:Gem::Dependency
|
183
169
|
name: mocha
|
184
170
|
requirement: !ruby/object:Gem::Requirement
|
185
171
|
requirements:
|
186
|
-
- -
|
172
|
+
- - ">="
|
187
173
|
- !ruby/object:Gem::Version
|
188
174
|
version: '0'
|
189
175
|
type: :development
|
190
176
|
prerelease: false
|
191
177
|
version_requirements: !ruby/object:Gem::Requirement
|
192
178
|
requirements:
|
193
|
-
- -
|
179
|
+
- - ">="
|
194
180
|
- !ruby/object:Gem::Version
|
195
181
|
version: '0'
|
196
182
|
- !ruby/object:Gem::Dependency
|
197
183
|
name: rake
|
198
184
|
requirement: !ruby/object:Gem::Requirement
|
199
185
|
requirements:
|
200
|
-
- -
|
186
|
+
- - ">="
|
201
187
|
- !ruby/object:Gem::Version
|
202
188
|
version: '0'
|
203
189
|
type: :development
|
204
190
|
prerelease: false
|
205
191
|
version_requirements: !ruby/object:Gem::Requirement
|
206
192
|
requirements:
|
207
|
-
- -
|
193
|
+
- - ">="
|
208
194
|
- !ruby/object:Gem::Version
|
209
195
|
version: '0'
|
210
196
|
description: Something small for process management
|
@@ -214,10 +200,11 @@ executables:
|
|
214
200
|
extensions: []
|
215
201
|
extra_rdoc_files: []
|
216
202
|
files:
|
217
|
-
- .coveralls.yml
|
218
|
-
- .gitignore
|
219
|
-
- .rspec
|
220
|
-
- .
|
203
|
+
- ".coveralls.yml"
|
204
|
+
- ".gitignore"
|
205
|
+
- ".rspec"
|
206
|
+
- ".rubocop.yml"
|
207
|
+
- ".travis.yml"
|
221
208
|
- Gemfile
|
222
209
|
- MIT-LICENSE
|
223
210
|
- Rakefile
|
@@ -225,42 +212,74 @@ files:
|
|
225
212
|
- bin/invoker
|
226
213
|
- invoker.gemspec
|
227
214
|
- lib/invoker.rb
|
228
|
-
- lib/invoker/
|
229
|
-
- lib/invoker/
|
215
|
+
- lib/invoker/cli.rb
|
216
|
+
- lib/invoker/cli/pinger.rb
|
217
|
+
- lib/invoker/cli/question.rb
|
218
|
+
- lib/invoker/cli/tail.rb
|
219
|
+
- lib/invoker/cli/tail_watcher.rb
|
230
220
|
- lib/invoker/command_worker.rb
|
231
221
|
- lib/invoker/commander.rb
|
222
|
+
- lib/invoker/config.rb
|
223
|
+
- lib/invoker/daemon.rb
|
224
|
+
- lib/invoker/dns_cache.rb
|
232
225
|
- lib/invoker/errors.rb
|
233
226
|
- lib/invoker/event/manager.rb
|
227
|
+
- lib/invoker/ipc.rb
|
228
|
+
- lib/invoker/ipc/add_command.rb
|
229
|
+
- lib/invoker/ipc/add_http_command.rb
|
230
|
+
- lib/invoker/ipc/base_command.rb
|
231
|
+
- lib/invoker/ipc/client_handler.rb
|
232
|
+
- lib/invoker/ipc/dns_check_command.rb
|
233
|
+
- lib/invoker/ipc/list_command.rb
|
234
|
+
- lib/invoker/ipc/message.rb
|
235
|
+
- lib/invoker/ipc/message/list_response.rb
|
236
|
+
- lib/invoker/ipc/message/tail_response.rb
|
237
|
+
- lib/invoker/ipc/ping_command.rb
|
238
|
+
- lib/invoker/ipc/reload_command.rb
|
239
|
+
- lib/invoker/ipc/remove_command.rb
|
240
|
+
- lib/invoker/ipc/server.rb
|
241
|
+
- lib/invoker/ipc/tail_command.rb
|
242
|
+
- lib/invoker/ipc/unix_client.rb
|
234
243
|
- lib/invoker/logger.rb
|
235
244
|
- lib/invoker/parsers/config.rb
|
236
|
-
- lib/invoker/parsers/option_parser.rb
|
237
245
|
- lib/invoker/parsers/procfile.rb
|
238
|
-
- lib/invoker/power.rb
|
239
246
|
- lib/invoker/power/balancer.rb
|
240
247
|
- lib/invoker/power/config.rb
|
241
248
|
- lib/invoker/power/dns.rb
|
242
249
|
- lib/invoker/power/http_response.rb
|
243
250
|
- lib/invoker/power/port_finder.rb
|
251
|
+
- lib/invoker/power/power.rb
|
244
252
|
- lib/invoker/power/powerup.rb
|
245
253
|
- lib/invoker/power/setup.rb
|
246
254
|
- lib/invoker/power/templates/404.html
|
247
255
|
- lib/invoker/power/templates/503.html
|
256
|
+
- lib/invoker/process_manager.rb
|
248
257
|
- lib/invoker/process_printer.rb
|
249
258
|
- lib/invoker/reactor.rb
|
250
|
-
- lib/invoker/
|
259
|
+
- lib/invoker/reactor/reader.rb
|
251
260
|
- lib/invoker/version.rb
|
252
261
|
- readme.md
|
253
|
-
- spec/invoker/
|
262
|
+
- spec/invoker/cli/pinger_spec.rb
|
263
|
+
- spec/invoker/cli/tail_watcher_spec.rb
|
264
|
+
- spec/invoker/cli_spec.rb
|
254
265
|
- spec/invoker/command_worker_spec.rb
|
255
266
|
- spec/invoker/commander_spec.rb
|
256
267
|
- spec/invoker/config_spec.rb
|
268
|
+
- spec/invoker/daemon_spec.rb
|
257
269
|
- spec/invoker/event/manager_spec.rb
|
258
270
|
- spec/invoker/invoker_spec.rb
|
271
|
+
- spec/invoker/ipc/client_handler_spec.rb
|
272
|
+
- spec/invoker/ipc/dns_check_command_spec.rb
|
273
|
+
- spec/invoker/ipc/message/list_response_spec.rb
|
274
|
+
- spec/invoker/ipc/message_spec.rb
|
275
|
+
- spec/invoker/ipc/unix_client_spec.rb
|
259
276
|
- spec/invoker/power/balancer_spec.rb
|
260
277
|
- spec/invoker/power/config_spec.rb
|
261
278
|
- spec/invoker/power/http_response_spec.rb
|
262
279
|
- spec/invoker/power/port_finder_spec.rb
|
263
280
|
- spec/invoker/power/setup_spec.rb
|
281
|
+
- spec/invoker/process_manager_spec.rb
|
282
|
+
- spec/invoker/reactor_spec.rb
|
264
283
|
- spec/spec_helper.rb
|
265
284
|
homepage: http://invoker.codemancers.com
|
266
285
|
licenses:
|
@@ -272,30 +291,41 @@ require_paths:
|
|
272
291
|
- lib
|
273
292
|
required_ruby_version: !ruby/object:Gem::Requirement
|
274
293
|
requirements:
|
275
|
-
- -
|
294
|
+
- - ">="
|
276
295
|
- !ruby/object:Gem::Version
|
277
296
|
version: '0'
|
278
297
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
279
298
|
requirements:
|
280
|
-
- -
|
299
|
+
- - ">="
|
281
300
|
- !ruby/object:Gem::Version
|
282
301
|
version: '0'
|
283
302
|
requirements: []
|
284
303
|
rubyforge_project:
|
285
|
-
rubygems_version: 2.
|
304
|
+
rubygems_version: 2.2.2
|
286
305
|
signing_key:
|
287
306
|
specification_version: 4
|
288
307
|
summary: Something small for Process management
|
289
308
|
test_files:
|
290
|
-
- spec/invoker/
|
309
|
+
- spec/invoker/cli/pinger_spec.rb
|
310
|
+
- spec/invoker/cli/tail_watcher_spec.rb
|
311
|
+
- spec/invoker/cli_spec.rb
|
291
312
|
- spec/invoker/command_worker_spec.rb
|
292
313
|
- spec/invoker/commander_spec.rb
|
293
314
|
- spec/invoker/config_spec.rb
|
315
|
+
- spec/invoker/daemon_spec.rb
|
294
316
|
- spec/invoker/event/manager_spec.rb
|
295
317
|
- spec/invoker/invoker_spec.rb
|
318
|
+
- spec/invoker/ipc/client_handler_spec.rb
|
319
|
+
- spec/invoker/ipc/dns_check_command_spec.rb
|
320
|
+
- spec/invoker/ipc/message/list_response_spec.rb
|
321
|
+
- spec/invoker/ipc/message_spec.rb
|
322
|
+
- spec/invoker/ipc/unix_client_spec.rb
|
296
323
|
- spec/invoker/power/balancer_spec.rb
|
297
324
|
- spec/invoker/power/config_spec.rb
|
298
325
|
- spec/invoker/power/http_response_spec.rb
|
299
326
|
- spec/invoker/power/port_finder_spec.rb
|
300
327
|
- spec/invoker/power/setup_spec.rb
|
328
|
+
- spec/invoker/process_manager_spec.rb
|
329
|
+
- spec/invoker/reactor_spec.rb
|
301
330
|
- spec/spec_helper.rb
|
331
|
+
has_rdoc:
|
@@ -1,45 +0,0 @@
|
|
1
|
-
module Invoker
|
2
|
-
module CommandListener
|
3
|
-
class Client
|
4
|
-
attr_accessor :client_socket
|
5
|
-
def initialize(client_socket)
|
6
|
-
@client_socket = client_socket
|
7
|
-
end
|
8
|
-
|
9
|
-
def read_and_execute
|
10
|
-
command_info = client_socket.gets()
|
11
|
-
command_info && command_info.strip!
|
12
|
-
|
13
|
-
if command_info && !command_info.empty?
|
14
|
-
worker_command, command_label, rest_args = command_info.strip.split(" ")
|
15
|
-
worker_command.strip!
|
16
|
-
if worker_command
|
17
|
-
run_command(worker_command, command_label, rest_args)
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
def run_command(worker_command, command_label, rest_args = nil)
|
23
|
-
case worker_command
|
24
|
-
when 'add'
|
25
|
-
Invoker::COMMANDER.on_next_tick(command_label) { |b_command_label|
|
26
|
-
add_command_by_label(b_command_label)
|
27
|
-
}
|
28
|
-
when 'list'
|
29
|
-
json = Invoker::COMMANDER.list_commands()
|
30
|
-
client_socket.puts(json)
|
31
|
-
when 'remove'
|
32
|
-
Invoker::COMMANDER.on_next_tick(command_label, rest_args) { |b_command_label,b_rest_args|
|
33
|
-
remove_command(b_command_label, b_rest_args)
|
34
|
-
}
|
35
|
-
when 'reload'
|
36
|
-
Invoker::COMMANDER.on_next_tick(command_label, rest_args) { |b_command_label, b_rest_args|
|
37
|
-
reload_command(b_command_label, b_rest_args)
|
38
|
-
}
|
39
|
-
else
|
40
|
-
Invoker::Logger.puts("\n Invalid command".color(:red))
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
@@ -1,106 +0,0 @@
|
|
1
|
-
require "slop"
|
2
|
-
require "ostruct"
|
3
|
-
|
4
|
-
module Invoker
|
5
|
-
module Parsers
|
6
|
-
class OptionParser
|
7
|
-
def self.parse(args)
|
8
|
-
selected_command = nil
|
9
|
-
opts = Slop.parse(args, help: true) do
|
10
|
-
on :v, "Print the version" do
|
11
|
-
selected_command = OpenStruct.new(:command => 'version')
|
12
|
-
end
|
13
|
-
on :p, :port=, "Port series to be used for starting rack servers", as: Integer
|
14
|
-
|
15
|
-
command 'start' do
|
16
|
-
banner "Usage : invoker start config.ini \n Start Invoker Process Manager"
|
17
|
-
on :p, :port=, "Port series to be used for starting rack servers", as: Integer
|
18
|
-
run do |cmd_opts, cmd_args|
|
19
|
-
port = cmd_opts.to_hash[:port] || 9000
|
20
|
-
selected_command = OpenStruct.new(
|
21
|
-
:command => 'start',
|
22
|
-
:file => cmd_args.first,
|
23
|
-
:port => port
|
24
|
-
)
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
command 'setup' do
|
29
|
-
banner "Usage : invoker setup \n Sets up firewall rules for subdomains"
|
30
|
-
run do |cmd_opts, cmd_args|
|
31
|
-
selected_command = OpenStruct.new(:command => 'setup')
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
command 'uninstall' do
|
36
|
-
banner "Usage : invoker uninstall \n Removes firewall rules created by setup"
|
37
|
-
run do |cmd_opts, cmd_args|
|
38
|
-
selected_command = OpenStruct.new(:command => 'uninstall')
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
command 'list' do
|
43
|
-
banner "Usage : invoker list\n List processes managed by invoker"
|
44
|
-
run do |cmd_opts, cmd_args|
|
45
|
-
selected_command = OpenStruct.new(:command => 'list')
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
command 'add' do
|
50
|
-
banner "Usage : invoker add process_label \n Start the process with given process_label"
|
51
|
-
run do |cmd_opts, cmd_args|
|
52
|
-
selected_command = OpenStruct.new(:command => 'add', :command_key => cmd_args.first)
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
command 'remove' do
|
57
|
-
banner "Usage : invoker remove process_label \n Stop the process with given label"
|
58
|
-
on :s, :signal=, "Signal to send for killing the process, default is SIGINT", as: String
|
59
|
-
|
60
|
-
run do |cmd_opts, cmd_args|
|
61
|
-
signal_to_use = cmd_opts.to_hash[:signal] || 'INT'
|
62
|
-
selected_command = OpenStruct.new(
|
63
|
-
:command => 'remove',
|
64
|
-
:command_key => cmd_args.first,
|
65
|
-
:signal => signal_to_use
|
66
|
-
)
|
67
|
-
end
|
68
|
-
end
|
69
|
-
|
70
|
-
command 'reload' do
|
71
|
-
banner "Usage : invoker reload process_label \n Restart the process with given label"
|
72
|
-
on :s, :signal=, "Signal to send for killing the process, default is SIGINT", as: String
|
73
|
-
|
74
|
-
run do |cmd_opts, cmd_args|
|
75
|
-
signal_to_use = cmd_opts.to_hash[:signal] || 'INT'
|
76
|
-
selected_command = OpenStruct.new(
|
77
|
-
:command => 'reload',
|
78
|
-
:command_key => cmd_args.first,
|
79
|
-
:signal => signal_to_use
|
80
|
-
)
|
81
|
-
end
|
82
|
-
end
|
83
|
-
end
|
84
|
-
|
85
|
-
selected_command || create_default_command(args, opts)
|
86
|
-
end
|
87
|
-
|
88
|
-
# If user specifies no command either show help message or start the invoker
|
89
|
-
# process supervisor.
|
90
|
-
#
|
91
|
-
# @param args [Array] command line arguments
|
92
|
-
# @param opts [Slop::Options] Processed slop options
|
93
|
-
# @return [OpenStruct, false] returns default command or nil
|
94
|
-
def self.create_default_command(args, opts)
|
95
|
-
if args.first && File.exists?(args.first) && File.file?(args.first)
|
96
|
-
port = opts.to_hash[:port] || 9000
|
97
|
-
OpenStruct.new(:command => "start", :file => args.first, :port => port)
|
98
|
-
else
|
99
|
-
Invoker::Logger.puts opts
|
100
|
-
false
|
101
|
-
end
|
102
|
-
end
|
103
|
-
|
104
|
-
end
|
105
|
-
end
|
106
|
-
end
|