ruby-terraform 0.65.0.pre.8 → 0.65.0.pre.9
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/Gemfile +2 -0
- data/Gemfile.lock +4 -1
- data/Rakefile +7 -3
- data/bin/console +1 -0
- data/lib/ruby-terraform.rb +2 -0
- data/lib/ruby_terraform.rb +4 -2
- data/lib/ruby_terraform/commands.rb +2 -0
- data/lib/ruby_terraform/commands/apply.rb +6 -4
- data/lib/ruby_terraform/commands/base.rb +22 -24
- data/lib/ruby_terraform/commands/clean.rb +2 -0
- data/lib/ruby_terraform/commands/destroy.rb +9 -7
- data/lib/ruby_terraform/commands/format.rb +6 -4
- data/lib/ruby_terraform/commands/get.rb +6 -4
- data/lib/ruby_terraform/commands/import.rb +9 -7
- data/lib/ruby_terraform/commands/init.rb +7 -5
- data/lib/ruby_terraform/commands/output.rb +8 -6
- data/lib/ruby_terraform/commands/plan.rb +7 -5
- data/lib/ruby_terraform/commands/refresh.rb +7 -5
- data/lib/ruby_terraform/commands/remote_config.rb +5 -3
- data/lib/ruby_terraform/commands/show.rb +6 -4
- data/lib/ruby_terraform/commands/validate.rb +7 -5
- data/lib/ruby_terraform/commands/workspace.rb +9 -7
- data/lib/ruby_terraform/errors.rb +2 -0
- data/lib/ruby_terraform/errors/execution_error.rb +2 -0
- data/lib/ruby_terraform/options.rb +2 -0
- data/lib/ruby_terraform/options/factory.rb +11 -9
- data/lib/ruby_terraform/options/name.rb +2 -0
- data/lib/ruby_terraform/options/types/base.rb +2 -0
- data/lib/ruby_terraform/options/types/boolean.rb +2 -0
- data/lib/ruby_terraform/options/types/flag.rb +2 -0
- data/lib/ruby_terraform/options/types/standard.rb +2 -0
- data/lib/ruby_terraform/options/values/boolean.rb +2 -0
- data/lib/ruby_terraform/output.rb +2 -0
- data/lib/ruby_terraform/version.rb +3 -1
- data/ruby_terraform.gemspec +58 -0
- metadata +17 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d49c234d709a37f69ac311de2f0beb7123e88a70053af2a30955d28ffa712b54
|
4
|
+
data.tar.gz: 5cc7e8f312bc8217e4fc3e0fdcb28a44911580c93893ccb82b1e11d6e999f026
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6abdb8f924a32c688c32b56e7908debfb9ebf1dd089b1ecab345239e15dca795d1cf722e3b0c66b2d8014f32e3a55acea945ff8fb6d52b2e0bb57fd5f64b0282
|
7
|
+
data.tar.gz: 543a406f62b65901a6b62479b919784774c7ced3bf1a4d1bae1c5f218367ecae8fc0bd4a16470a73addbc0e69033fd833c85fa41ae774448147aa62839adf809
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
ruby-terraform (0.65.0.pre.
|
4
|
+
ruby-terraform (0.65.0.pre.9)
|
5
5
|
lino (>= 2.3)
|
6
6
|
|
7
7
|
GEM
|
@@ -126,6 +126,8 @@ GEM
|
|
126
126
|
unicode-display_width (>= 1.4.0, < 3.0)
|
127
127
|
rubocop-ast (1.4.1)
|
128
128
|
parser (>= 2.7.1.5)
|
129
|
+
rubocop-rake (0.5.1)
|
130
|
+
rubocop
|
129
131
|
rubocop-rspec (2.2.0)
|
130
132
|
rubocop (~> 1.0)
|
131
133
|
rubocop-ast (>= 1.1.0)
|
@@ -166,6 +168,7 @@ DEPENDENCIES
|
|
166
168
|
rake_ssh (~> 0.4)
|
167
169
|
rspec (~> 3.9)
|
168
170
|
rubocop (~> 1.12)
|
171
|
+
rubocop-rake (~> 0.5)
|
169
172
|
rubocop-rspec (~> 2.2)
|
170
173
|
ruby-terraform!
|
171
174
|
simplecov (~> 0.21)
|
data/Rakefile
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'yaml'
|
2
4
|
require 'rake_circle_ci'
|
3
5
|
require 'rake_github'
|
@@ -7,13 +9,14 @@ require 'securerandom'
|
|
7
9
|
require 'rspec/core/rake_task'
|
8
10
|
require 'rubocop/rake_task'
|
9
11
|
|
10
|
-
task default: [
|
11
|
-
|
12
|
-
|
12
|
+
task default: %i[
|
13
|
+
library:fix
|
14
|
+
test:unit
|
13
15
|
]
|
14
16
|
|
15
17
|
namespace :encryption do
|
16
18
|
namespace :passphrase do
|
19
|
+
desc 'Generate encryption passphrase for CI GPG key'
|
17
20
|
task :generate do
|
18
21
|
File.open('config/secrets/ci/encryption.passphrase', 'w') do |f|
|
19
22
|
f.write(SecureRandom.base64(36))
|
@@ -94,6 +97,7 @@ RakeGithub.define_repository_tasks(
|
|
94
97
|
end
|
95
98
|
|
96
99
|
namespace :pipeline do
|
100
|
+
desc 'Prepare CircleCI Pipeline'
|
97
101
|
task prepare: %i[
|
98
102
|
circle_ci:project:follow
|
99
103
|
circle_ci:env_vars:ensure
|
data/bin/console
CHANGED
data/lib/ruby-terraform.rb
CHANGED
data/lib/ruby_terraform.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'ruby_terraform/version'
|
2
4
|
require 'ruby_terraform/errors'
|
3
5
|
require 'ruby_terraform/options'
|
@@ -38,8 +40,8 @@ module RubyTerraform
|
|
38
40
|
validate: RubyTerraform::Commands::Validate,
|
39
41
|
workspace: RubyTerraform::Commands::Workspace
|
40
42
|
}.each do |method, command_class|
|
41
|
-
define_method(method) do |
|
42
|
-
command_class.new.execute(
|
43
|
+
define_method(method) do |parameters = {}|
|
44
|
+
command_class.new.execute(parameters)
|
43
45
|
end
|
44
46
|
end
|
45
47
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require_relative 'base'
|
2
4
|
|
3
5
|
module RubyTerraform
|
@@ -8,7 +10,7 @@ module RubyTerraform
|
|
8
10
|
end
|
9
11
|
|
10
12
|
# rubocop:disable Metrics/MethodLength
|
11
|
-
def
|
13
|
+
def options
|
12
14
|
%w[
|
13
15
|
-auto-approve
|
14
16
|
-backup
|
@@ -28,12 +30,12 @@ module RubyTerraform
|
|
28
30
|
[values[:plan] || values[:directory]]
|
29
31
|
end
|
30
32
|
|
31
|
-
def
|
33
|
+
def parameter_defaults(_parameters)
|
32
34
|
{ vars: {}, var_files: [], targets: [] }
|
33
35
|
end
|
34
36
|
|
35
|
-
def
|
36
|
-
{ backup:
|
37
|
+
def parameter_overrides(parameters)
|
38
|
+
{ backup: parameters[:no_backup] ? '-' : parameters[:backup] }
|
37
39
|
end
|
38
40
|
end
|
39
41
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'lino'
|
2
4
|
|
3
5
|
require_relative '../errors'
|
@@ -17,10 +19,10 @@ module RubyTerraform
|
|
17
19
|
initialize_command
|
18
20
|
end
|
19
21
|
|
20
|
-
def execute(
|
21
|
-
do_before(
|
22
|
-
build_and_execute_command(
|
23
|
-
do_after(
|
22
|
+
def execute(parameters = {})
|
23
|
+
do_before(parameters)
|
24
|
+
build_and_execute_command(parameters)
|
25
|
+
do_after(parameters)
|
24
26
|
rescue Open4::SpawnError
|
25
27
|
message = "Failed while running '#{command_name}'."
|
26
28
|
logger.error(message)
|
@@ -31,8 +33,8 @@ module RubyTerraform
|
|
31
33
|
|
32
34
|
attr_reader :binary, :logger, :stdin, :stdout, :stderr
|
33
35
|
|
34
|
-
def build_and_execute_command(
|
35
|
-
command = build_command(
|
36
|
+
def build_and_execute_command(parameters)
|
37
|
+
command = build_command(parameters)
|
36
38
|
logger.debug("Running '#{command}'.")
|
37
39
|
command.execute(
|
38
40
|
stdin: stdin,
|
@@ -45,38 +47,38 @@ module RubyTerraform
|
|
45
47
|
self.class.to_s.split('::')[-1].downcase
|
46
48
|
end
|
47
49
|
|
48
|
-
def do_before(
|
50
|
+
def do_before(_parameters); end
|
49
51
|
|
50
|
-
def do_after(
|
52
|
+
def do_after(_parameters); end
|
51
53
|
|
52
54
|
private
|
53
55
|
|
54
56
|
def initialize_command; end
|
55
57
|
|
56
|
-
def build_command(
|
57
|
-
|
58
|
+
def build_command(parameters)
|
59
|
+
parameters = resolve_parameters(parameters)
|
58
60
|
|
59
61
|
Lino::CommandLineBuilder
|
60
62
|
.for_command(@binary)
|
61
63
|
.with_options_after_subcommands
|
62
64
|
.with_option_separator('=')
|
63
|
-
.with_appliables(options
|
64
|
-
.with_subcommands(subcommands(
|
65
|
-
.with_arguments(arguments(
|
65
|
+
.with_appliables(Options::Factory.from(options, parameters))
|
66
|
+
.with_subcommands(subcommands(parameters))
|
67
|
+
.with_arguments(arguments(parameters))
|
66
68
|
.build
|
67
69
|
end
|
68
70
|
|
69
|
-
def
|
70
|
-
|
71
|
-
.merge(
|
72
|
-
.merge(
|
71
|
+
def resolve_parameters(parameters)
|
72
|
+
parameter_defaults(parameters)
|
73
|
+
.merge(parameters)
|
74
|
+
.merge(parameter_overrides(parameters))
|
73
75
|
end
|
74
76
|
|
75
|
-
def
|
77
|
+
def parameter_defaults(_parameters)
|
76
78
|
{}
|
77
79
|
end
|
78
80
|
|
79
|
-
def
|
81
|
+
def parameter_overrides(_parameters)
|
80
82
|
{}
|
81
83
|
end
|
82
84
|
|
@@ -84,11 +86,7 @@ module RubyTerraform
|
|
84
86
|
[]
|
85
87
|
end
|
86
88
|
|
87
|
-
def options
|
88
|
-
RubyTerraform::Options::Factory.from(values, switches)
|
89
|
-
end
|
90
|
-
|
91
|
-
def switches
|
89
|
+
def options
|
92
90
|
[]
|
93
91
|
end
|
94
92
|
|
@@ -1,9 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require_relative 'base'
|
2
4
|
|
3
5
|
module RubyTerraform
|
4
6
|
module Commands
|
5
7
|
class Destroy < Base
|
6
|
-
def
|
8
|
+
def options
|
7
9
|
%w[
|
8
10
|
-auto-approve
|
9
11
|
-backup
|
@@ -16,20 +18,20 @@ module RubyTerraform
|
|
16
18
|
]
|
17
19
|
end
|
18
20
|
|
19
|
-
def subcommands(
|
21
|
+
def subcommands(_parameters)
|
20
22
|
%w[destroy]
|
21
23
|
end
|
22
24
|
|
23
|
-
def arguments(
|
24
|
-
[
|
25
|
+
def arguments(parameters)
|
26
|
+
[parameters[:directory]]
|
25
27
|
end
|
26
28
|
|
27
|
-
def
|
29
|
+
def parameter_defaults(_parameters)
|
28
30
|
{ vars: {}, var_files: [], targets: [] }
|
29
31
|
end
|
30
32
|
|
31
|
-
def
|
32
|
-
{ backup:
|
33
|
+
def parameter_overrides(parameters)
|
34
|
+
{ backup: parameters[:no_backup] ? '-' : parameters[:backup] }
|
33
35
|
end
|
34
36
|
end
|
35
37
|
end
|
@@ -1,9 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require_relative 'base'
|
2
4
|
|
3
5
|
module RubyTerraform
|
4
6
|
module Commands
|
5
7
|
class Format < Base
|
6
|
-
def
|
8
|
+
def options
|
7
9
|
%w[
|
8
10
|
-check
|
9
11
|
-diff
|
@@ -14,12 +16,12 @@ module RubyTerraform
|
|
14
16
|
]
|
15
17
|
end
|
16
18
|
|
17
|
-
def subcommands(
|
19
|
+
def subcommands(_parameters)
|
18
20
|
%w[fmt]
|
19
21
|
end
|
20
22
|
|
21
|
-
def arguments(
|
22
|
-
[
|
23
|
+
def arguments(parameters)
|
24
|
+
[parameters[:directory]]
|
23
25
|
end
|
24
26
|
end
|
25
27
|
end
|
@@ -1,21 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require_relative 'base'
|
2
4
|
|
3
5
|
module RubyTerraform
|
4
6
|
module Commands
|
5
7
|
class Get < Base
|
6
|
-
def
|
8
|
+
def options
|
7
9
|
%w[
|
8
10
|
-no-color
|
9
11
|
-update
|
10
12
|
]
|
11
13
|
end
|
12
14
|
|
13
|
-
def subcommands(
|
15
|
+
def subcommands(_parameters)
|
14
16
|
%w[get]
|
15
17
|
end
|
16
18
|
|
17
|
-
def arguments(
|
18
|
-
[
|
19
|
+
def arguments(parameters)
|
20
|
+
[parameters[:directory]]
|
19
21
|
end
|
20
22
|
end
|
21
23
|
end
|
@@ -1,9 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require_relative 'base'
|
2
4
|
|
3
5
|
module RubyTerraform
|
4
6
|
module Commands
|
5
7
|
class Import < Base
|
6
|
-
def
|
8
|
+
def options
|
7
9
|
%w[
|
8
10
|
-config
|
9
11
|
-backup
|
@@ -15,20 +17,20 @@ module RubyTerraform
|
|
15
17
|
]
|
16
18
|
end
|
17
19
|
|
18
|
-
def subcommands(
|
20
|
+
def subcommands(_parameters)
|
19
21
|
%w[import]
|
20
22
|
end
|
21
23
|
|
22
|
-
def arguments(
|
23
|
-
[
|
24
|
+
def arguments(parameters)
|
25
|
+
[parameters[:address], parameters[:id]]
|
24
26
|
end
|
25
27
|
|
26
|
-
def
|
28
|
+
def parameter_defaults(_parameters)
|
27
29
|
{ vars: {}, var_files: [] }
|
28
30
|
end
|
29
31
|
|
30
|
-
def
|
31
|
-
{ backup:
|
32
|
+
def parameter_overrides(parameters)
|
33
|
+
{ backup: parameters[:no_backup] ? '-' : parameters[:backup] }
|
32
34
|
end
|
33
35
|
end
|
34
36
|
end
|
@@ -1,9 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require_relative 'base'
|
2
4
|
|
3
5
|
module RubyTerraform
|
4
6
|
module Commands
|
5
7
|
class Init < Base
|
6
|
-
def
|
8
|
+
def options
|
7
9
|
%w[
|
8
10
|
-backend
|
9
11
|
-backend-config
|
@@ -15,15 +17,15 @@ module RubyTerraform
|
|
15
17
|
]
|
16
18
|
end
|
17
19
|
|
18
|
-
def subcommands(
|
20
|
+
def subcommands(_parameters)
|
19
21
|
%w[init]
|
20
22
|
end
|
21
23
|
|
22
|
-
def arguments(
|
23
|
-
[
|
24
|
+
def arguments(parameters)
|
25
|
+
[parameters[:path]]
|
24
26
|
end
|
25
27
|
|
26
|
-
def
|
28
|
+
def parameter_defaults(_parameters)
|
27
29
|
{ backend_config: {} }
|
28
30
|
end
|
29
31
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'stringio'
|
2
4
|
require_relative 'base'
|
3
5
|
|
@@ -10,7 +12,7 @@ module RubyTerraform
|
|
10
12
|
@stdout = StringIO.new
|
11
13
|
end
|
12
14
|
|
13
|
-
def
|
15
|
+
def options
|
14
16
|
%w[
|
15
17
|
-json
|
16
18
|
-module
|
@@ -20,17 +22,17 @@ module RubyTerraform
|
|
20
22
|
]
|
21
23
|
end
|
22
24
|
|
23
|
-
def subcommands(
|
25
|
+
def subcommands(_parameters)
|
24
26
|
%w[output]
|
25
27
|
end
|
26
28
|
|
27
|
-
def arguments(
|
28
|
-
[
|
29
|
+
def arguments(parameters)
|
30
|
+
[parameters[:name]]
|
29
31
|
end
|
30
32
|
|
31
|
-
def do_after(
|
33
|
+
def do_after(parameters)
|
32
34
|
result = stdout.string
|
33
|
-
|
35
|
+
parameters[:name] ? result.chomp : result
|
34
36
|
end
|
35
37
|
end
|
36
38
|
end
|
@@ -1,9 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require_relative 'base'
|
2
4
|
|
3
5
|
module RubyTerraform
|
4
6
|
module Commands
|
5
7
|
class Plan < Base
|
6
|
-
def
|
8
|
+
def options
|
7
9
|
%w[
|
8
10
|
-destroy
|
9
11
|
-input
|
@@ -16,15 +18,15 @@ module RubyTerraform
|
|
16
18
|
]
|
17
19
|
end
|
18
20
|
|
19
|
-
def subcommands(
|
21
|
+
def subcommands(_parameters)
|
20
22
|
%w[plan]
|
21
23
|
end
|
22
24
|
|
23
|
-
def arguments(
|
24
|
-
[
|
25
|
+
def arguments(parameters)
|
26
|
+
[parameters[:directory]]
|
25
27
|
end
|
26
28
|
|
27
|
-
def
|
29
|
+
def parameter_defaults(_parameters)
|
28
30
|
{ vars: {}, var_files: [], targets: [] }
|
29
31
|
end
|
30
32
|
end
|
@@ -1,9 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require_relative 'base'
|
2
4
|
|
3
5
|
module RubyTerraform
|
4
6
|
module Commands
|
5
7
|
class Refresh < Base
|
6
|
-
def
|
8
|
+
def options
|
7
9
|
%w[
|
8
10
|
-input
|
9
11
|
-no-color
|
@@ -14,15 +16,15 @@ module RubyTerraform
|
|
14
16
|
]
|
15
17
|
end
|
16
18
|
|
17
|
-
def subcommands(
|
19
|
+
def subcommands(_parameters)
|
18
20
|
%w[refresh]
|
19
21
|
end
|
20
22
|
|
21
|
-
def arguments(
|
22
|
-
[
|
23
|
+
def arguments(parameters)
|
24
|
+
[parameters[:directory]]
|
23
25
|
end
|
24
26
|
|
25
|
-
def
|
27
|
+
def parameter_defaults(_parameters)
|
26
28
|
{ vars: {}, var_files: [], targets: [] }
|
27
29
|
end
|
28
30
|
end
|
@@ -1,9 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require_relative 'base'
|
2
4
|
|
3
5
|
module RubyTerraform
|
4
6
|
module Commands
|
5
7
|
class RemoteConfig < Base
|
6
|
-
def
|
8
|
+
def options
|
7
9
|
%w[
|
8
10
|
-backend
|
9
11
|
-backend-config
|
@@ -11,11 +13,11 @@ module RubyTerraform
|
|
11
13
|
]
|
12
14
|
end
|
13
15
|
|
14
|
-
def subcommands(
|
16
|
+
def subcommands(_parameters)
|
15
17
|
%w[remote config]
|
16
18
|
end
|
17
19
|
|
18
|
-
def
|
20
|
+
def parameter_defaults(_parameters)
|
19
21
|
{ backend_config: {} }
|
20
22
|
end
|
21
23
|
end
|
@@ -1,9 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require_relative 'base'
|
2
4
|
|
3
5
|
module RubyTerraform
|
4
6
|
module Commands
|
5
7
|
class Show < Base
|
6
|
-
def
|
8
|
+
def options
|
7
9
|
%w[
|
8
10
|
-json
|
9
11
|
-module-depth
|
@@ -11,12 +13,12 @@ module RubyTerraform
|
|
11
13
|
]
|
12
14
|
end
|
13
15
|
|
14
|
-
def subcommands(
|
16
|
+
def subcommands(_parameters)
|
15
17
|
%w[show]
|
16
18
|
end
|
17
19
|
|
18
|
-
def arguments(
|
19
|
-
[
|
20
|
+
def arguments(parameters)
|
21
|
+
[parameters[:path] || parameters[:directory]]
|
20
22
|
end
|
21
23
|
end
|
22
24
|
end
|
@@ -1,9 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require_relative 'base'
|
2
4
|
|
3
5
|
module RubyTerraform
|
4
6
|
module Commands
|
5
7
|
class Validate < Base
|
6
|
-
def
|
8
|
+
def options
|
7
9
|
%w[
|
8
10
|
-check-variables
|
9
11
|
-json
|
@@ -14,15 +16,15 @@ module RubyTerraform
|
|
14
16
|
]
|
15
17
|
end
|
16
18
|
|
17
|
-
def subcommands(
|
19
|
+
def subcommands(_parameters)
|
18
20
|
%w[validate]
|
19
21
|
end
|
20
22
|
|
21
|
-
def arguments(
|
22
|
-
[
|
23
|
+
def arguments(parameters)
|
24
|
+
[parameters[:directory]]
|
23
25
|
end
|
24
26
|
|
25
|
-
def
|
27
|
+
def parameter_defaults(_parameters)
|
26
28
|
{ vars: {}, var_files: [] }
|
27
29
|
end
|
28
30
|
end
|
@@ -1,22 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require_relative 'base'
|
2
4
|
|
3
5
|
module RubyTerraform
|
4
6
|
module Commands
|
5
7
|
class Workspace < Base
|
6
|
-
def subcommands(
|
7
|
-
commands = ['workspace',
|
8
|
-
if
|
9
|
-
commands <<
|
8
|
+
def subcommands(parameters)
|
9
|
+
commands = ['workspace', parameters[:operation]]
|
10
|
+
if parameters[:workspace] && parameters[:operation] != 'list'
|
11
|
+
commands << parameters[:workspace]
|
10
12
|
else
|
11
13
|
commands
|
12
14
|
end
|
13
15
|
end
|
14
16
|
|
15
|
-
def arguments(
|
16
|
-
[
|
17
|
+
def arguments(parameters)
|
18
|
+
[parameters[:directory]]
|
17
19
|
end
|
18
20
|
|
19
|
-
def
|
21
|
+
def parameter_defaults(_parameters)
|
20
22
|
{ directory: nil, operation: 'list', workspace: nil }
|
21
23
|
end
|
22
24
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require_relative 'name'
|
2
4
|
require_relative 'types/boolean'
|
3
5
|
require_relative 'types/flag'
|
@@ -61,15 +63,15 @@ module RubyTerraform
|
|
61
63
|
out: :plan
|
62
64
|
}.freeze
|
63
65
|
|
64
|
-
def self.from(
|
65
|
-
new(
|
66
|
+
def self.from(names, parameters)
|
67
|
+
new(names, parameters).from
|
66
68
|
end
|
67
69
|
|
68
70
|
private_class_method :new
|
69
71
|
|
70
|
-
def initialize(
|
71
|
-
@names = names.map { |
|
72
|
-
@
|
72
|
+
def initialize(names, parameters)
|
73
|
+
@names = names.map { |name| Name.new(name) }
|
74
|
+
@parameters = parameters
|
73
75
|
end
|
74
76
|
|
75
77
|
def from
|
@@ -80,7 +82,7 @@ module RubyTerraform
|
|
80
82
|
|
81
83
|
private
|
82
84
|
|
83
|
-
attr_reader :names, :
|
85
|
+
attr_reader :names, :parameters
|
84
86
|
|
85
87
|
def options_from_name(name)
|
86
88
|
return plural_options(name) if PLURAL_OPTIONS.include?(name)
|
@@ -92,15 +94,15 @@ module RubyTerraform
|
|
92
94
|
end
|
93
95
|
|
94
96
|
def boolean_option(name)
|
95
|
-
[Types::Boolean.new(name.to_s,
|
97
|
+
[Types::Boolean.new(name.to_s, parameters[name.as_key])]
|
96
98
|
end
|
97
99
|
|
98
100
|
def flag_option(name)
|
99
|
-
[Types::Flag.new(name.to_s,
|
101
|
+
[Types::Flag.new(name.to_s, parameters[name.as_key])]
|
100
102
|
end
|
101
103
|
|
102
104
|
def standard_option(name, hash_key)
|
103
|
-
[Types::Standard.new(name.to_s,
|
105
|
+
[Types::Standard.new(name.to_s, parameters[hash_key])]
|
104
106
|
end
|
105
107
|
|
106
108
|
def override_option(name)
|
@@ -0,0 +1,58 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
lib = File.expand_path('lib', __dir__)
|
4
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
5
|
+
require 'ruby_terraform/version'
|
6
|
+
require 'date'
|
7
|
+
|
8
|
+
files = %w[
|
9
|
+
bin
|
10
|
+
lib
|
11
|
+
CODE_OF_CONDUCT.md
|
12
|
+
ruby_terraform.gemspec
|
13
|
+
Gemfile
|
14
|
+
LICENSE.txt
|
15
|
+
Rakefile
|
16
|
+
README.md
|
17
|
+
]
|
18
|
+
|
19
|
+
Gem::Specification.new do |spec|
|
20
|
+
spec.name = 'ruby-terraform'
|
21
|
+
spec.version = RubyTerraform::VERSION
|
22
|
+
spec.authors = ['Toby Clemson']
|
23
|
+
spec.email = ['tobyclemson@gmail.com']
|
24
|
+
|
25
|
+
spec.summary = 'A simple Ruby wrapper for invoking Terraform commands.'
|
26
|
+
spec.description =
|
27
|
+
'Wraps the Terraform CLI so that Terraform can be invoked from a Ruby ' \
|
28
|
+
'script or Rakefile.'
|
29
|
+
spec.homepage = 'https://github.com/infrablocks/ruby_terraform'
|
30
|
+
spec.license = 'MIT'
|
31
|
+
|
32
|
+
spec.files = `git ls-files -z`.split("\x0").select do |f|
|
33
|
+
f.match(/^(#{files.map { |g| Regexp.escape(g) }.join('|')})/)
|
34
|
+
end
|
35
|
+
spec.bindir = 'exe'
|
36
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
37
|
+
spec.require_paths = ['lib']
|
38
|
+
|
39
|
+
spec.required_ruby_version = '>= 2.6'
|
40
|
+
|
41
|
+
spec.add_dependency 'lino', '>= 2.3'
|
42
|
+
|
43
|
+
spec.add_development_dependency 'bundler', '~> 2.0'
|
44
|
+
spec.add_development_dependency 'faker', '~> 2.17'
|
45
|
+
spec.add_development_dependency 'gem-release', '~> 2.1'
|
46
|
+
spec.add_development_dependency 'guard', '~> 2.16'
|
47
|
+
spec.add_development_dependency 'guard-rspec', '~> 4.7'
|
48
|
+
spec.add_development_dependency 'rake', '~> 13.0'
|
49
|
+
spec.add_development_dependency 'rake_circle_ci', '~> 0.9'
|
50
|
+
spec.add_development_dependency 'rake_github', '~> 0.5'
|
51
|
+
spec.add_development_dependency 'rake_gpg', '~> 0.12'
|
52
|
+
spec.add_development_dependency 'rake_ssh', '~> 0.4'
|
53
|
+
spec.add_development_dependency 'rspec', '~> 3.9'
|
54
|
+
spec.add_development_dependency 'rubocop', '~> 1.12'
|
55
|
+
spec.add_development_dependency 'rubocop-rake', '~> 0.5'
|
56
|
+
spec.add_development_dependency 'rubocop-rspec', '~> 2.2'
|
57
|
+
spec.add_development_dependency 'simplecov', '~> 0.21'
|
58
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-terraform
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.65.0.pre.
|
4
|
+
version: 0.65.0.pre.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Toby Clemson
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-04-
|
11
|
+
date: 2021-04-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: lino
|
@@ -192,6 +192,20 @@ dependencies:
|
|
192
192
|
- - "~>"
|
193
193
|
- !ruby/object:Gem::Version
|
194
194
|
version: '1.12'
|
195
|
+
- !ruby/object:Gem::Dependency
|
196
|
+
name: rubocop-rake
|
197
|
+
requirement: !ruby/object:Gem::Requirement
|
198
|
+
requirements:
|
199
|
+
- - "~>"
|
200
|
+
- !ruby/object:Gem::Version
|
201
|
+
version: '0.5'
|
202
|
+
type: :development
|
203
|
+
prerelease: false
|
204
|
+
version_requirements: !ruby/object:Gem::Requirement
|
205
|
+
requirements:
|
206
|
+
- - "~>"
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: '0.5'
|
195
209
|
- !ruby/object:Gem::Dependency
|
196
210
|
name: rubocop-rspec
|
197
211
|
requirement: !ruby/object:Gem::Requirement
|
@@ -266,6 +280,7 @@ files:
|
|
266
280
|
- lib/ruby_terraform/options/values/boolean.rb
|
267
281
|
- lib/ruby_terraform/output.rb
|
268
282
|
- lib/ruby_terraform/version.rb
|
283
|
+
- ruby_terraform.gemspec
|
269
284
|
homepage: https://github.com/infrablocks/ruby_terraform
|
270
285
|
licenses:
|
271
286
|
- MIT
|