ruby_fly 0.25.0 → 0.30.0.pre.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/ruby_fly.rb +12 -1
- data/lib/ruby_fly/commands.rb +1 -0
- data/lib/ruby_fly/commands/base.rb +16 -19
- data/lib/ruby_fly/commands/status.rb +62 -0
- data/lib/ruby_fly/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bca710e9c88c2053750dca94bb051410bea9babe26527dd3f7df44c82d792386
|
4
|
+
data.tar.gz: cfe6338863de8e277dd352a3e11b37d2588e97a2ea80c2b1948c1d25effedebe
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ade5f96c8f50bbbfa924305b368cec5505cef8dc17c771265ed5fa6947ac5ff93884f399bb4366961f30acae4f49b9479769b9c3eda019746b9843331fd219fe
|
7
|
+
data.tar.gz: b20e59f0caeb4bc98a4430ca289349d27fa5b5a037f9c44bf796bb62ad1af16fb7d94e112d8b70c9b6bdf5b1e410e22bbf5d511a5f6abb748a9d2e357b0cf638
|
data/Gemfile.lock
CHANGED
data/lib/ruby_fly.rb
CHANGED
@@ -20,6 +20,14 @@ module RubyFly
|
|
20
20
|
end
|
21
21
|
|
22
22
|
module ClassMethods
|
23
|
+
def login(opts = {})
|
24
|
+
Commands::Login.new.execute(opts)
|
25
|
+
end
|
26
|
+
|
27
|
+
def status(opts = {})
|
28
|
+
Commands::Status.new.execute(opts)
|
29
|
+
end
|
30
|
+
|
23
31
|
def get_pipeline(opts = {})
|
24
32
|
Commands::GetPipeline.new.execute(opts)
|
25
33
|
end
|
@@ -43,10 +51,13 @@ module RubyFly
|
|
43
51
|
end
|
44
52
|
|
45
53
|
class Configuration
|
46
|
-
attr_accessor :binary
|
54
|
+
attr_accessor :binary, :stdin, :stdout, :stderr
|
47
55
|
|
48
56
|
def initialize
|
49
57
|
@binary = 'fly'
|
58
|
+
@stdin = ''
|
59
|
+
@stdout = $stdout
|
60
|
+
@stderr = $stderr
|
50
61
|
end
|
51
62
|
end
|
52
63
|
end
|
data/lib/ruby_fly/commands.rb
CHANGED
@@ -3,34 +3,27 @@ require 'lino'
|
|
3
3
|
module RubyFly
|
4
4
|
module Commands
|
5
5
|
class Base
|
6
|
-
attr_reader :binary
|
6
|
+
attr_reader :binary, :stdin, :stdout, :stderr
|
7
7
|
|
8
8
|
def initialize(binary: nil)
|
9
9
|
@binary = binary || RubyFly.configuration.binary
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
''
|
14
|
-
end
|
15
|
-
|
16
|
-
def stdout
|
17
|
-
STDOUT
|
18
|
-
end
|
19
|
-
|
20
|
-
def stderr
|
21
|
-
STDERR
|
10
|
+
@stdin = stdin || RubyFly.configuration.stdin
|
11
|
+
@stdout = stdout || RubyFly.configuration.stdout
|
12
|
+
@stderr = stderr || RubyFly.configuration.stderr
|
22
13
|
end
|
23
14
|
|
24
15
|
def execute(opts = {})
|
25
16
|
builder = instantiate_builder
|
26
17
|
|
27
18
|
do_before(opts)
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
19
|
+
do_around(opts) do |new_opts|
|
20
|
+
configure_command(builder, new_opts)
|
21
|
+
.build
|
22
|
+
.execute(
|
23
|
+
stdin: stdin,
|
24
|
+
stdout: stdout,
|
25
|
+
stderr: stderr)
|
26
|
+
end
|
34
27
|
do_after(opts)
|
35
28
|
end
|
36
29
|
|
@@ -43,6 +36,10 @@ module RubyFly
|
|
43
36
|
def do_before(opts)
|
44
37
|
end
|
45
38
|
|
39
|
+
def do_around(opts, &block)
|
40
|
+
block.call(opts)
|
41
|
+
end
|
42
|
+
|
46
43
|
def configure_command(builder, opts)
|
47
44
|
builder
|
48
45
|
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
require 'lino'
|
2
|
+
require_relative 'base'
|
3
|
+
require_relative 'mixins/environment'
|
4
|
+
|
5
|
+
module RubyFly
|
6
|
+
module Commands
|
7
|
+
class Status < Base
|
8
|
+
include Mixins::Environment
|
9
|
+
|
10
|
+
def initialize(*args)
|
11
|
+
super(*args)
|
12
|
+
@stdout = StringIO.new unless
|
13
|
+
(defined?(@stdout) && @stdout.respond_to?(:string))
|
14
|
+
@stderr = StringIO.new unless
|
15
|
+
(defined?(@stderr) && @stderr.respond_to?(:string))
|
16
|
+
end
|
17
|
+
|
18
|
+
def configure_command(builder, opts)
|
19
|
+
builder = super(builder, opts)
|
20
|
+
|
21
|
+
missing_params = [
|
22
|
+
:target
|
23
|
+
].select { |param| opts[param].nil? }
|
24
|
+
|
25
|
+
unless missing_params.empty?
|
26
|
+
description = missing_params.map { |p| "'#{p}'" }.join(', ')
|
27
|
+
raise(
|
28
|
+
ArgumentError,
|
29
|
+
"Error: #{description} required but not provided.")
|
30
|
+
end
|
31
|
+
|
32
|
+
target = opts[:target]
|
33
|
+
|
34
|
+
builder
|
35
|
+
.with_subcommand('status') do |sub|
|
36
|
+
sub = sub.with_option('-t', target)
|
37
|
+
sub
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def do_around(opts, &block)
|
42
|
+
begin
|
43
|
+
block.call(opts)
|
44
|
+
rescue Open4::SpawnError => e
|
45
|
+
raise e unless e.status.exitstatus == 1
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
def do_after(opts)
|
50
|
+
output = stdout.string
|
51
|
+
error = stderr.string
|
52
|
+
|
53
|
+
return :logged_in if output =~ /logged in successfully/
|
54
|
+
return :logged_out if error =~ /logged out/
|
55
|
+
return :session_expired if error =~ /please login again/
|
56
|
+
return :unknown_target if error =~ /error: unknown target/
|
57
|
+
|
58
|
+
:unknown_status
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
data/lib/ruby_fly/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby_fly
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.30.0.pre.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Toby Clemson
|
@@ -187,6 +187,7 @@ files:
|
|
187
187
|
- lib/ruby_fly/commands/login.rb
|
188
188
|
- lib/ruby_fly/commands/mixins/environment.rb
|
189
189
|
- lib/ruby_fly/commands/set_pipeline.rb
|
190
|
+
- lib/ruby_fly/commands/status.rb
|
190
191
|
- lib/ruby_fly/commands/unpause_pipeline.rb
|
191
192
|
- lib/ruby_fly/commands/version.rb
|
192
193
|
- lib/ruby_fly/rc.rb
|
@@ -206,9 +207,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
206
207
|
version: '2.6'
|
207
208
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
208
209
|
requirements:
|
209
|
-
- - "
|
210
|
+
- - ">"
|
210
211
|
- !ruby/object:Gem::Version
|
211
|
-
version:
|
212
|
+
version: 1.3.1
|
212
213
|
requirements: []
|
213
214
|
rubygems_version: 3.0.1
|
214
215
|
signing_key:
|