ops_team 0.18.1 → 0.19.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d591b58dad032824721105b4ce3e45c63ef40078273d77fbb85ddf50c3224f27
4
- data.tar.gz: f3f72de653d0ad2d3b87ef1ac6c75bfe0543b6030b37954fae1ddf4dd2981e17
3
+ metadata.gz: b1ea151f15e3f842a7fee5780096a4571448ccbcc7232bd841832289b863c4bc
4
+ data.tar.gz: 17fb8d9783359db78d608afb99b61feb5f9cfd10cd5bed378417d900aedacca4
5
5
  SHA512:
6
- metadata.gz: 42df63cce2068a86cbe127da74fdf4af2dfb33f3bb4d7ed176354566b11adc1ba3adbbc941b0df8440bcdc1cfaf76f4e9e7182c41618cee1ca9695d8fa1bdca7
7
- data.tar.gz: 451205a2bde8e20689f2b5b1b76d60f3cf3d2db5d74d18c2f71cc21219863bc4a87373c5980833e90d647314eb937b4dc02f13ad940636603d7dd37faf4764e4
6
+ metadata.gz: 0325447467e8c0fc01483f1fcc3be7da8b4dedb6045c49d0ae7b2072efc7da1ee6fe7e0c281c6f5ccda1e0871caf5641e1ac8b78b99810f6e134a6fef6c35b0e
7
+ data.tar.gz: 4f6391a41a0fa8c44b65d623fc0c09db7ce00b900df7a0b86d7f2b21337d29a1aecf0854fac2ad95e23c53522f92e7ac9e4c7342518475dbbea2373338c00428
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'output'
4
+
5
+ class Forward
6
+ def initialize(dir, args)
7
+ @dir = dir
8
+ @args = args
9
+ end
10
+
11
+ def run
12
+ Output.notice("Forwarding 'ops #{@args.join(" ")}' to '#{@dir}/'...")
13
+
14
+ Dir.chdir(@dir)
15
+ Ops.new(@args).run
16
+ end
17
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'forward'
4
+
5
+ class Forwards
6
+ def initialize(config, args)
7
+ @config = config
8
+ @args = args
9
+ end
10
+
11
+ def get(name)
12
+ Forward.new(name, @args) if forwards[name]
13
+ end
14
+
15
+ private
16
+
17
+ def forwards
18
+ @forwards ||= @config["forwards"] || {}
19
+ end
20
+ end
data/lib/ops.rb CHANGED
@@ -13,6 +13,7 @@ require 'environment'
13
13
  require 'version'
14
14
  require 'action_list'
15
15
  require 'action_suggester'
16
+ require 'forwards'
16
17
 
17
18
  require_rel "builtins"
18
19
 
@@ -101,6 +102,8 @@ class Ops
101
102
  end
102
103
 
103
104
  def run_action
105
+ return forward.run if forward
106
+
104
107
  do_before_all
105
108
 
106
109
  return builtin.run if builtin
@@ -149,6 +152,10 @@ class Ops
149
152
  Builtins.constants.select { |c| Builtins.const_get(c).is_a? Class }.map(&:downcase)
150
153
  end
151
154
 
155
+ def forward
156
+ @forward ||= Forwards.new(@config, @args).get(@action_name)
157
+ end
158
+
152
159
  def action
153
160
  return action_list.get(@action_name) if action_list.get(@action_name)
154
161
  return action_list.get_by_alias(@action_name) if action_list.get_by_alias(@action_name)
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = 'ops_team'
5
- s.version = '0.18.1'
5
+ s.version = '0.19.0'
6
6
  s.authors = [
7
7
  'nickthecook@gmail.com'
8
8
  ]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ops_team
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.18.1
4
+ version: 0.19.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - nickthecook@gmail.com
@@ -175,6 +175,8 @@ files:
175
175
  - lib/dependency.rb
176
176
  - lib/environment.rb
177
177
  - lib/executor.rb
178
+ - lib/forward.rb
179
+ - lib/forwards.rb
178
180
  - lib/hook_handler.rb
179
181
  - lib/ops.rb
180
182
  - lib/options.rb