locd 0.1.7 → 0.1.8

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3a80b05b88b98cb4d9d9706a2c095d1deed6bf26
4
- data.tar.gz: f1dbf2a61964710164b273a9fdca8b2f75e2a224
3
+ metadata.gz: f6438af1b2410389af392d28a64141b6dd028c38
4
+ data.tar.gz: 2def809840b2b7be95a91c892fa04643da9e574d
5
5
  SHA512:
6
- metadata.gz: 8a299efd70c86e066b4ad85e602165ed724a1e4a1c971e1d4a3f1dfebeaf7b44fc33c2e6a5f20c09d66d04eb7bf18753ad8b494f3354409ce28b6bf3b98fc561
7
- data.tar.gz: 72316baf20c6f65cad87f53b21027e43a6de38839bd4b280c837c1433cd41bf9aa5360665e85a5373e3b5f8df4e85528f6a095f009cb013b310b52e8c4a42163
6
+ metadata.gz: f3cd7af583a45013c1fa5528f7b99a8bd9977dcc4c8f104618df2bdbf2e48c43d7616c8f2593d3a72452ba04fa02bdf27a54c9a95346282a3c4ba7088015a091
7
+ data.tar.gz: d3fe5aea5eaa00f5bc881204443fc356a344585300a4e75c78af10493b2c21ce91271e6de9ae89017ad66de2ab33eb9d99b0bf72b65177e636445c5c79beb02b
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.7
1
+ 0.1.8
@@ -107,7 +107,8 @@ class Locd::CLI::Command::Agent < Locd::CLI::Command::Base
107
107
 
108
108
  shared_option :long,
109
109
  groups: :respond_with_agents,
110
- desc: "Display agent details",
110
+ group: "Display",
111
+ desc: "Display agent details table",
111
112
  aliases: '-l',
112
113
  type: :boolean
113
114
 
@@ -149,6 +150,7 @@ class Locd::CLI::Command::Agent < Locd::CLI::Command::Base
149
150
 
150
151
  shared_option :all,
151
152
  groups: :multi,
153
+ group: "Pattern",
152
154
  desc: "Apply to ALL agents that PATTERN matches",
153
155
  aliases: '-a',
154
156
  type: :boolean
@@ -209,6 +211,31 @@ class Locd::CLI::Command::Agent < Locd::CLI::Command::Base
209
211
  default: true
210
212
 
211
213
 
214
+ # `:start` Group
215
+ # --------------------------------------------------------------------------
216
+ #
217
+ # Relevant options when starting agents.
218
+ #
219
+
220
+ shared_option :load,
221
+ groups: :start,
222
+ desc: "Load the agent before starting",
223
+ type: :boolean,
224
+ default: true
225
+
226
+ shared_option :force,
227
+ groups: :start,
228
+ desc: "Force loading of agent even if it's disabled",
229
+ type: :boolean,
230
+ default: false
231
+
232
+ shared_option :enable,
233
+ groups: :start,
234
+ desc: "Set `launchd` *Disabled* key to `false`",
235
+ type: :boolean,
236
+ default: false
237
+
238
+
212
239
  # Commands
213
240
  # ============================================================================
214
241
 
@@ -234,7 +261,7 @@ class Locd::CLI::Command::Agent < Locd::CLI::Command::Base
234
261
  end
235
262
 
236
263
 
237
- desc "plist PATTERN",
264
+ desc "plist PATTERN [OPTIONS]",
238
265
  "Print an agent's launchd property list"
239
266
 
240
267
  include_options groups: :pattern
@@ -267,44 +294,7 @@ class Locd::CLI::Command::Agent < Locd::CLI::Command::Base
267
294
  # Commands for Manipulating Agent Definitions
268
295
  # ----------------------------------------------------------------------------
269
296
 
270
- desc "add CMD_TEMPLATE...",
271
- "Add an agent that runs a command in the current directory"
272
-
273
- include_options groups: [:write, :add, :respond_with_agents]
274
-
275
- def add *cmd_template, **kwds
276
- logger.trace __method__.to_s,
277
- cmd_template: cmd_template,
278
- kwds: kwds,
279
- options: options
280
-
281
- # Merge all the keywords together into the format needed to call
282
- # {Locd::Agent.add}
283
- kwds.merge! **option_kwds( :force, groups: [:write] ),
284
- cmd_template: cmd_template
285
-
286
- # Check args
287
-
288
- # `:cmd_template` can not be empty at this point
289
- if kwds[:cmd_template].empty? || kwds[:cmd_template].all?( &:empty? )
290
- raise Thor::RequiredArgumentMissingError,
291
- "CMD_TEMPLATE argument is required to add an agent"
292
- end
293
-
294
- # Need a `:label` too
295
- unless t.non_empty_str === kwds[:label]
296
- raise Thor::RequiredArgumentMissingError,
297
- "--label=LABEL option is required to add an agent"
298
- end
299
-
300
- # Do the add
301
- agent = agent_class.add **kwds
302
-
303
- # Reload (unless we were told not to... usually you want to reload)
304
- agent.reload if options[:load]
305
-
306
- respond agent
307
- end
297
+ require_relative './agent/add'
308
298
 
309
299
 
310
300
  desc "update PATTERN [OPTIONS] [-- CMD_TEMPLATE...]",
@@ -325,7 +315,7 @@ class Locd::CLI::Command::Agent < Locd::CLI::Command::Base
325
315
  end
326
316
 
327
317
 
328
- desc "rm PATTERN",
318
+ desc "rm PATTERN [OPTIONS]",
329
319
  "Remove (uninstall, delete) a agent"
330
320
 
331
321
  map remove: :rm
@@ -339,9 +329,6 @@ class Locd::CLI::Command::Agent < Locd::CLI::Command::Base
339
329
 
340
330
  def rm pattern
341
331
  kwds = option_kwds :logs
342
-
343
- logger.debug "kwds", kwds
344
-
345
332
  find_multi!( pattern ).each { |agent| agent.remove **kwds }
346
333
  end
347
334
 
@@ -349,35 +336,21 @@ class Locd::CLI::Command::Agent < Locd::CLI::Command::Base
349
336
  # Commands for Manipulating Agent State
350
337
  # --------------------------------------------------------------------------
351
338
 
352
- desc "start PATTERN",
339
+ desc "start PATTERN [OPTIONS]",
353
340
  "Start an agent"
354
341
 
355
- include_options groups: :pattern
356
-
357
- option :load,
358
- desc: "Load the agent before starting",
359
- type: :boolean,
360
- default: true
361
-
362
- option :force,
363
- desc: "Force loading of agent even if it's disabled",
364
- type: :boolean,
365
- default: false
366
-
367
- option :enable,
368
- desc: "Set `launchd` *Disabled* key to `false`",
369
- type: :boolean,
370
- default: false
342
+ include_options groups: [ :pattern, :multi, :start ]
371
343
 
372
344
  def start pattern
373
- find_only!( pattern ).start **option_kwds( :load, :force, :enable )
345
+ kwds = option_kwds :load, :force, :enable
346
+ find_mutli!( pattern ).each { |agent| agent.start **kwds }
374
347
  end
375
348
 
376
349
 
377
- desc "stop PATTERN",
350
+ desc "stop PATTERN [OPTIONS]",
378
351
  "Stop an agent"
379
352
 
380
- include_options groups: [:pattern, :stop]
353
+ include_options groups: [:pattern, :multi, :stop]
381
354
 
382
355
  option :unload,
383
356
  desc: "Unload the agent from `launchd` after stopping",
@@ -390,11 +363,12 @@ class Locd::CLI::Command::Agent < Locd::CLI::Command::Base
390
363
  default: false
391
364
 
392
365
  def stop pattern
393
- find_only!( pattern ).stop **option_kwds( :unload, :disable )
366
+ kwds = option_kwds :unload, :disable
367
+ find_multi!( pattern ).each { |agent| agent.stop **kwds }
394
368
  end
395
369
 
396
370
 
397
- desc "restart PATTERN",
371
+ desc "restart PATTERN [OPTIONS]",
398
372
  "Restart an agent"
399
373
 
400
374
  include_options groups: [:pattern, :multi, :stop]
@@ -416,7 +390,6 @@ class Locd::CLI::Command::Agent < Locd::CLI::Command::Base
416
390
 
417
391
  def restart pattern
418
392
  kwds = option_kwds :reload, :force, :enable
419
-
420
393
  find_multi!( pattern ).each { |agent| agent.restart **kwds }
421
394
  end
422
395
 
@@ -424,14 +397,24 @@ class Locd::CLI::Command::Agent < Locd::CLI::Command::Base
424
397
  # Assorted Other Commands
425
398
  # ----------------------------------------------------------------------------
426
399
 
427
- desc "open PATTERN",
400
+ desc "open PATTERN [OPTIONS]",
428
401
  "Open an agent's URL in the browser"
429
402
 
430
- include_options groups: [:pattern, :multi]
403
+ include_options groups: [ :pattern, :multi, :start ]
404
+
405
+ option :start,
406
+ desc: %{ Start any stopped agents before opening },
407
+ type: :boolean,
408
+ default: true
431
409
 
432
410
  def open pattern
433
411
  find_multi!( pattern ).each do |agent|
412
+ if options[:start] && agent.stopped?
413
+ agent.start **option_kwds( groups: :start )
414
+ end
415
+
434
416
  Cmds! "open %s", agent.url
417
+
435
418
  logger.info "Opened agent `#{ agent.label }` at #{ agent.url }"
436
419
  end
437
420
  end
@@ -0,0 +1,74 @@
1
+ # encoding: UTF-8
2
+ # frozen_string_literal: true
3
+
4
+
5
+ # Namespace
6
+ # =======================================================================
7
+
8
+ module Locd
9
+ module CLI
10
+ module Command
11
+
12
+
13
+ # Definitions
14
+ # =======================================================================
15
+
16
+ class Agent < Locd::CLI::Command::Base
17
+
18
+ desc "add [OPTIONS] -- CMD_TEMPLATE...",
19
+ "Add an agent that runs a command in the current directory"
20
+
21
+ example <<~END
22
+ Serve Yard docs for a Ruby gem in development
23
+
24
+ Defines a Yard server working in the current directory that will be
25
+ available at http://yard.my_gem.test:8888 (unless Loc'd is running on a
26
+ different port than 8888).
27
+
28
+ locd site add --name=yard.my_gem.test -- bundle exec yard server --reload --port {port} --bind {bind}
29
+
30
+ END
31
+
32
+ include_options groups: [:write, :add, :respond_with_agents]
33
+
34
+ def add *cmd_template, **kwds
35
+ logger.trace __method__.to_s,
36
+ cmd_template: cmd_template,
37
+ kwds: kwds,
38
+ options: options
39
+
40
+ # Merge all the keywords together into the format needed to call
41
+ # {Locd::Agent.add}
42
+ kwds.merge! **option_kwds( :force, groups: [:write] ),
43
+ cmd_template: cmd_template
44
+
45
+ # Check args
46
+
47
+ # `:cmd_template` can not be empty at this point
48
+ if kwds[:cmd_template].empty? || kwds[:cmd_template].all?( &:empty? )
49
+ raise Thor::RequiredArgumentMissingError,
50
+ "CMD_TEMPLATE argument is required to add an agent"
51
+ end
52
+
53
+ # Need a `:label` too
54
+ unless t.non_empty_str === kwds[:label]
55
+ raise Thor::RequiredArgumentMissingError,
56
+ "--label=LABEL option is required to add an agent"
57
+ end
58
+
59
+ # Do the add
60
+ agent = agent_class.add **kwds
61
+
62
+ # Reload (unless we were told not to... usually you want to reload)
63
+ agent.reload if options[:load]
64
+
65
+ respond agent
66
+ end
67
+ end
68
+
69
+ # /Namespace
70
+ # =======================================================================
71
+
72
+ end # module Command
73
+ end # module CLI
74
+ end # module Locd
@@ -47,7 +47,7 @@ Gem::Specification.new do |spec|
47
47
  # ----------------------------------------------------------------------------
48
48
 
49
49
  # My guns
50
- spec.add_dependency "nrser", '~> 0.3.3'
50
+ spec.add_dependency "nrser", '~> 0.3.5'
51
51
 
52
52
  # Used to process command templates from projects' `//dev/locd.yml` files
53
53
  spec.add_dependency "cmds", ">= 0.2.10"
@@ -59,7 +59,7 @@ Gem::Specification.new do |spec|
59
59
  spec.add_dependency 'plist', '~> 3.4'
60
60
 
61
61
  # Atli, my fork of Thor for CLI interface
62
- spec.add_dependency 'atli', '~> 0.1.7'
62
+ spec.add_dependency 'atli', '~> 0.1.8'
63
63
 
64
64
  #
65
65
  # spec.add_dependency 'terminal-table', '~> 1.8'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: locd
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.7
4
+ version: 0.1.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - nrser
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-05-06 00:00:00.000000000 Z
11
+ date: 2018-05-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -114,14 +114,14 @@ dependencies:
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: 0.3.3
117
+ version: 0.3.5
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: 0.3.3
124
+ version: 0.3.5
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: cmds
127
127
  requirement: !ruby/object:Gem::Requirement
@@ -170,14 +170,14 @@ dependencies:
170
170
  requirements:
171
171
  - - "~>"
172
172
  - !ruby/object:Gem::Version
173
- version: 0.1.7
173
+ version: 0.1.8
174
174
  type: :runtime
175
175
  prerelease: false
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
178
  - - "~>"
179
179
  - !ruby/object:Gem::Version
180
- version: 0.1.7
180
+ version: 0.1.8
181
181
  description:
182
182
  email:
183
183
  - neil@ztkae.com
@@ -214,6 +214,7 @@ files:
214
214
  - lib/locd/cli.rb
215
215
  - lib/locd/cli/command.rb
216
216
  - lib/locd/cli/command/agent.rb
217
+ - lib/locd/cli/command/agent/add.rb
217
218
  - lib/locd/cli/command/base.rb
218
219
  - lib/locd/cli/command/job.rb
219
220
  - lib/locd/cli/command/main.rb