ruby-terraform 0.1.0 → 0.2.0
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/TODO.md +1 -0
- data/lib/ruby_terraform/commands.rb +3 -0
- data/lib/ruby_terraform/commands/base.rb +33 -5
- data/lib/ruby_terraform/commands/destroy.rb +31 -0
- data/lib/ruby_terraform/commands/output.rb +32 -0
- data/lib/ruby_terraform/commands/remote_config.rb +26 -0
- data/lib/ruby_terraform/version.rb +1 -1
- metadata +5 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d6e2038484a3afb9ae5f1892067030bc70bdb330
|
4
|
+
data.tar.gz: 83a93936beb7d16c96891577ab5cd42536867e8d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 688080b50d97d4624e5dd7bd05d4cee95132cc2221d1dcd5b95f03f9614ee6699af63689d472c0ce7d7abe441c4ca8d69c7409bc37f160b4753555d3d9a27bf5
|
7
|
+
data.tar.gz: b8d9bf122ad7d199042acb9beefa5c08d2f45a2db4b3f52592f5bd87cfdca196991b2d6ad72f9422c1b7833aa64f3a1e53b5225fb97463961b353c7fb03c22d0
|
data/Gemfile.lock
CHANGED
data/TODO.md
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
* Error early when required options are missing.
|
@@ -1,6 +1,9 @@
|
|
1
1
|
require_relative 'commands/clean'
|
2
2
|
require_relative 'commands/get'
|
3
3
|
require_relative 'commands/apply'
|
4
|
+
require_relative 'commands/destroy'
|
5
|
+
require_relative 'commands/output'
|
6
|
+
require_relative 'commands/remote_config'
|
4
7
|
|
5
8
|
module RubyTerraform
|
6
9
|
module Commands
|
@@ -9,17 +9,45 @@ module RubyTerraform
|
|
9
9
|
@binary = binary || RubyTerraform.configuration.binary
|
10
10
|
end
|
11
11
|
|
12
|
-
def
|
13
|
-
|
14
|
-
|
15
|
-
|
12
|
+
def stdin
|
13
|
+
''
|
14
|
+
end
|
15
|
+
|
16
|
+
def stdout
|
17
|
+
STDOUT
|
18
|
+
end
|
19
|
+
|
20
|
+
def stderr
|
21
|
+
STDERR
|
22
|
+
end
|
23
|
+
|
24
|
+
def execute(opts = {})
|
25
|
+
builder = instantiate_builder
|
26
|
+
|
27
|
+
do_before(opts)
|
16
28
|
configure_command(builder, opts)
|
17
29
|
.build
|
18
|
-
.execute
|
30
|
+
.execute(
|
31
|
+
stdin: stdin,
|
32
|
+
stdout: stdout,
|
33
|
+
stderr: stderr)
|
34
|
+
do_after(opts)
|
35
|
+
end
|
36
|
+
|
37
|
+
def instantiate_builder
|
38
|
+
Lino::CommandLineBuilder
|
39
|
+
.for_command(binary)
|
40
|
+
.with_option_separator('=')
|
41
|
+
end
|
42
|
+
|
43
|
+
def do_before(opts)
|
19
44
|
end
|
20
45
|
|
21
46
|
def configure_command(builder, opts)
|
22
47
|
end
|
48
|
+
|
49
|
+
def do_after(opts)
|
50
|
+
end
|
23
51
|
end
|
24
52
|
end
|
25
53
|
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'lino'
|
2
|
+
require_relative 'base'
|
3
|
+
|
4
|
+
module RubyTerraform
|
5
|
+
module Commands
|
6
|
+
class Destroy < Base
|
7
|
+
def configure_command(builder, opts)
|
8
|
+
directory = opts[:directory]
|
9
|
+
vars = opts[:vars] || {}
|
10
|
+
state = opts[:state]
|
11
|
+
force = opts[:force]
|
12
|
+
no_backup = opts[:no_backup]
|
13
|
+
backup = no_backup ? '-' : opts[:backup]
|
14
|
+
no_color = opts[:no_color]
|
15
|
+
|
16
|
+
builder
|
17
|
+
.with_subcommand('destroy') do |sub|
|
18
|
+
vars.each do |key, value|
|
19
|
+
sub = sub.with_option('-var', "'#{key}=#{value}'", separator: ' ')
|
20
|
+
end
|
21
|
+
sub = sub.with_option('-state', state) if state
|
22
|
+
sub = sub.with_option('-backup', backup) if backup
|
23
|
+
sub = sub.with_flag('-no-color') if no_color
|
24
|
+
sub = sub.with_flag('-force') if force
|
25
|
+
sub
|
26
|
+
end
|
27
|
+
.with_argument(directory)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'lino'
|
2
|
+
require_relative 'base'
|
3
|
+
|
4
|
+
module RubyTerraform
|
5
|
+
module Commands
|
6
|
+
class Output < Base
|
7
|
+
def stdout
|
8
|
+
@stdout ||= StringIO.new
|
9
|
+
end
|
10
|
+
|
11
|
+
def configure_command(builder, opts)
|
12
|
+
name = opts[:name]
|
13
|
+
state = opts[:state]
|
14
|
+
no_color = opts[:no_color]
|
15
|
+
|
16
|
+
builder = builder
|
17
|
+
.with_subcommand('output') do |sub|
|
18
|
+
sub = sub.with_flag('-no-color') if no_color
|
19
|
+
sub = sub.with_option('-state', state) if state
|
20
|
+
sub
|
21
|
+
end
|
22
|
+
builder = builder.with_argument(name) if name
|
23
|
+
builder
|
24
|
+
end
|
25
|
+
|
26
|
+
def do_after(opts)
|
27
|
+
result = stdout.string
|
28
|
+
opts[:name] ? result.chomp : result
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'lino'
|
2
|
+
require_relative 'base'
|
3
|
+
|
4
|
+
module RubyTerraform
|
5
|
+
module Commands
|
6
|
+
class RemoteConfig < Base
|
7
|
+
def configure_command(builder, opts)
|
8
|
+
backend = opts[:backend]
|
9
|
+
no_color = opts[:no_color]
|
10
|
+
backend_config = opts[:backend_config] || {}
|
11
|
+
|
12
|
+
builder
|
13
|
+
.with_subcommand('remote')
|
14
|
+
.with_subcommand('config') do |sub|
|
15
|
+
sub = sub.with_option('-backend', backend) if backend
|
16
|
+
backend_config.each do |key, value|
|
17
|
+
sub = sub.with_option('-backend-config', "'#{key}=#{value}'", separator: ' ')
|
18
|
+
end
|
19
|
+
|
20
|
+
sub = sub.with_flag('-no-color') if no_color
|
21
|
+
sub
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-terraform
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Toby Clemson
|
@@ -97,6 +97,7 @@ files:
|
|
97
97
|
- LICENSE.txt
|
98
98
|
- README.md
|
99
99
|
- Rakefile
|
100
|
+
- TODO.md
|
100
101
|
- bin/console
|
101
102
|
- bin/setup
|
102
103
|
- lib/ruby_terraform.rb
|
@@ -104,7 +105,10 @@ files:
|
|
104
105
|
- lib/ruby_terraform/commands/apply.rb
|
105
106
|
- lib/ruby_terraform/commands/base.rb
|
106
107
|
- lib/ruby_terraform/commands/clean.rb
|
108
|
+
- lib/ruby_terraform/commands/destroy.rb
|
107
109
|
- lib/ruby_terraform/commands/get.rb
|
110
|
+
- lib/ruby_terraform/commands/output.rb
|
111
|
+
- lib/ruby_terraform/commands/remote_config.rb
|
108
112
|
- lib/ruby_terraform/version.rb
|
109
113
|
- ruby_terraform.gemspec
|
110
114
|
homepage: https://github.com/tobyclemson/ruby_terraform
|