yle_tf 0.4.0 → 1.3.0
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/bin/tf +2 -1
- data/lib/yle_tf.rb +4 -0
- data/lib/yle_tf/action.rb +4 -0
- data/lib/yle_tf/action/builder.rb +2 -0
- data/lib/yle_tf/action/command.rb +4 -2
- data/lib/yle_tf/action/copy_root_module.rb +2 -0
- data/lib/yle_tf/action/generate_vars_file.rb +2 -0
- data/lib/yle_tf/action/load_config.rb +9 -1
- data/lib/yle_tf/action/terraform_init.rb +31 -33
- data/lib/yle_tf/action/tf_hooks.rb +9 -5
- data/lib/yle_tf/action/tmpdir.rb +3 -1
- data/lib/yle_tf/action/verify_terraform_version.rb +19 -6
- data/lib/yle_tf/action/verify_tf_env.rb +2 -0
- data/lib/yle_tf/action/verify_yle_tf_version.rb +36 -0
- data/lib/yle_tf/action/write_terraformrc_defaults.rb +4 -2
- data/lib/yle_tf/backend.rb +42 -0
- data/lib/yle_tf/cli.rb +3 -1
- data/lib/yle_tf/config.rb +25 -9
- data/lib/yle_tf/config/defaults.rb +22 -11
- data/lib/yle_tf/config/erb.rb +2 -0
- data/lib/yle_tf/config/file.rb +2 -0
- data/lib/yle_tf/config/loader.rb +89 -59
- data/lib/yle_tf/config/migration.rb +117 -0
- data/lib/yle_tf/error.rb +2 -0
- data/lib/yle_tf/helpers/hash.rb +22 -0
- data/lib/yle_tf/logger.rb +2 -10
- data/lib/yle_tf/logger/colorize.rb +2 -0
- data/lib/yle_tf/plugin.rb +6 -2
- data/lib/yle_tf/plugin/action_hook.rb +2 -0
- data/lib/yle_tf/plugin/loader.rb +9 -2
- data/lib/yle_tf/plugin/manager.rb +3 -0
- data/lib/yle_tf/system.rb +5 -2
- data/lib/yle_tf/system/io_handlers.rb +5 -1
- data/lib/yle_tf/system/output_logger.rb +2 -0
- data/lib/yle_tf/system/tf_hook_output_logger.rb +2 -0
- data/lib/yle_tf/tf_hook.rb +11 -9
- data/lib/yle_tf/tf_hook/runner.rb +2 -0
- data/lib/yle_tf/vars_file.rb +16 -3
- data/lib/yle_tf/version.rb +3 -1
- data/lib/yle_tf/version_requirement.rb +2 -5
- data/lib/yle_tf_plugins/backends/{s3 → __default}/plugin.rb +6 -4
- data/lib/yle_tf_plugins/backends/file/{command.rb → backend.rb} +12 -13
- data/lib/yle_tf_plugins/backends/file/plugin.rb +4 -2
- data/lib/yle_tf_plugins/commands/__default/command.rb +2 -0
- data/lib/yle_tf_plugins/commands/__default/plugin.rb +2 -0
- data/lib/yle_tf_plugins/commands/_config/command.rb +2 -0
- data/lib/yle_tf_plugins/commands/_config/plugin.rb +2 -0
- data/lib/yle_tf_plugins/commands/_shell/command.rb +2 -0
- data/lib/yle_tf_plugins/commands/_shell/plugin.rb +2 -0
- data/lib/yle_tf_plugins/commands/help/command.rb +2 -0
- data/lib/yle_tf_plugins/commands/help/plugin.rb +2 -0
- data/lib/yle_tf_plugins/commands/version/command.rb +2 -0
- data/lib/yle_tf_plugins/commands/version/plugin.rb +2 -0
- metadata +61 -20
- data/lib/yle_tf/backend_config.rb +0 -41
- data/lib/yle_tf_plugins/backends/file/config.rb +0 -17
- data/lib/yle_tf_plugins/backends/s3/command.rb +0 -19
- data/vendor/logger_level_patch.rb +0 -29
data/lib/yle_tf/plugin/loader.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'yle_tf/logger'
|
2
4
|
|
3
5
|
class YleTf
|
@@ -13,7 +15,7 @@ class YleTf
|
|
13
15
|
|
14
16
|
def self.load_core_plugins
|
15
17
|
core_plugins.each do |plugin_file|
|
16
|
-
Logger.debug
|
18
|
+
Logger.debug { "Loading core plugin: #{core_plugin_name(plugin_file)}" }
|
17
19
|
load(plugin_file)
|
18
20
|
end
|
19
21
|
end
|
@@ -33,7 +35,12 @@ class YleTf
|
|
33
35
|
end
|
34
36
|
|
35
37
|
def self.core_plugins
|
36
|
-
Dir.glob(File.expand_path('
|
38
|
+
Dir.glob(File.expand_path('../../yle_tf_plugins/**/plugin.rb', __dir__))
|
39
|
+
end
|
40
|
+
|
41
|
+
def self.core_plugin_name(path)
|
42
|
+
m = %r{.*/yle_tf_plugins/(?<name>.+?)/plugin\.rb$}.match(path)
|
43
|
+
m ? m[:name] : path
|
37
44
|
end
|
38
45
|
|
39
46
|
def self.bundler_plugins
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'yle_tf/logger'
|
2
4
|
|
3
5
|
class YleTf
|
@@ -42,6 +44,7 @@ class YleTf
|
|
42
44
|
registered.each do |plugin|
|
43
45
|
backends.merge!(plugin.backends)
|
44
46
|
end
|
47
|
+
backends.default = backends.delete(DEFAULT_BACKEND)
|
45
48
|
end
|
46
49
|
end
|
47
50
|
end
|
data/lib/yle_tf/system.rb
CHANGED
@@ -1,6 +1,9 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'English'
|
2
4
|
require 'open3'
|
3
5
|
require 'shellwords'
|
6
|
+
require 'stringio'
|
4
7
|
require 'thwait'
|
5
8
|
require 'yle_tf/error'
|
6
9
|
require 'yle_tf/logger'
|
@@ -14,7 +17,7 @@ class YleTf
|
|
14
17
|
DEFAULT_ERROR_HANDLER = ->(_exit_code, error) { raise error }.freeze
|
15
18
|
|
16
19
|
DEFAULT_IO_HANDLERS = {
|
17
|
-
stdin:
|
20
|
+
stdin: :dev_null,
|
18
21
|
stdout: :info,
|
19
22
|
stderr: :error
|
20
23
|
}.freeze
|
@@ -44,7 +47,7 @@ class YleTf
|
|
44
47
|
|
45
48
|
def self.read_cmd(*args, **opts)
|
46
49
|
buffer = StringIO.new
|
47
|
-
cmd(*args, opts.merge(stdout: buffer))
|
50
|
+
cmd(*args, **opts.merge(stdout: buffer))
|
48
51
|
buffer.string
|
49
52
|
end
|
50
53
|
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'yle_tf/error'
|
2
4
|
require 'yle_tf/logger'
|
3
5
|
require 'yle_tf/system/output_logger'
|
@@ -22,6 +24,7 @@ class YleTf
|
|
22
24
|
if !handler.respond_to?(:call)
|
23
25
|
raise YleTf::Error, "Unknown input handler #{handler.inspect}"
|
24
26
|
end
|
27
|
+
|
25
28
|
handler
|
26
29
|
end
|
27
30
|
end
|
@@ -42,6 +45,7 @@ class YleTf
|
|
42
45
|
if !handler.respond_to?(:call)
|
43
46
|
raise YleTf::Error, "Unknown output handler #{handler.inspect}"
|
44
47
|
end
|
48
|
+
|
45
49
|
handler
|
46
50
|
end
|
47
51
|
end
|
@@ -104,7 +108,7 @@ class YleTf
|
|
104
108
|
while (data = source.readpartial(BLOCK_SIZE))
|
105
109
|
target.write(data)
|
106
110
|
end
|
107
|
-
rescue EOFError # rubocop:disable Lint/
|
111
|
+
rescue EOFError # rubocop:disable Lint/SuppressedException
|
108
112
|
# All read
|
109
113
|
rescue IOError => e
|
110
114
|
YleTf::Logger.debug e.full_message
|
data/lib/yle_tf/tf_hook.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'fileutils'
|
2
4
|
require 'tmpdir'
|
3
5
|
|
@@ -14,8 +16,8 @@ class YleTf
|
|
14
16
|
def self.from_config(config, tf_env)
|
15
17
|
TfHook.new(
|
16
18
|
description: config['description'],
|
17
|
-
source:
|
18
|
-
vars:
|
19
|
+
source: config['source'],
|
20
|
+
vars: merge_vars(config['vars'], tf_env)
|
19
21
|
)
|
20
22
|
end
|
21
23
|
|
@@ -23,7 +25,7 @@ class YleTf
|
|
23
25
|
def self.from_file(path)
|
24
26
|
TfHook.new(
|
25
27
|
description: File.basename(path),
|
26
|
-
path:
|
28
|
+
path: path
|
27
29
|
)
|
28
30
|
end
|
29
31
|
|
@@ -43,10 +45,10 @@ class YleTf
|
|
43
45
|
Logger.info("Running hook '#{description}'")
|
44
46
|
YleTf::System.cmd(
|
45
47
|
path,
|
46
|
-
env:
|
48
|
+
env: vars.merge(tf_vars),
|
47
49
|
progname: File.basename(path),
|
48
|
-
stdout:
|
49
|
-
stderr:
|
50
|
+
stdout: System::TfHookOutputLogger.new(:info),
|
51
|
+
stderr: System::TfHookOutputLogger.new(:error)
|
50
52
|
)
|
51
53
|
ensure
|
52
54
|
delete_tmpdir
|
@@ -57,9 +59,9 @@ class YleTf
|
|
57
59
|
raise Error, "Invalid or missing `source` for hook '#{description}'" if !m
|
58
60
|
|
59
61
|
{
|
60
|
-
uri:
|
62
|
+
uri: m[:uri],
|
61
63
|
path: m[:path],
|
62
|
-
ref:
|
64
|
+
ref: m[:ref] || 'master'
|
63
65
|
}
|
64
66
|
end
|
65
67
|
|
@@ -83,7 +85,7 @@ class YleTf
|
|
83
85
|
end
|
84
86
|
|
85
87
|
def delete_tmpdir
|
86
|
-
FileUtils.
|
88
|
+
FileUtils.rm_rf(@tmpdir, secure: true) if @tmpdir && Dir.exist?(@tmpdir)
|
87
89
|
@tmpdir = nil
|
88
90
|
end
|
89
91
|
|
data/lib/yle_tf/vars_file.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
class YleTf
|
2
4
|
class VarsFile
|
3
|
-
ENV_DIR = 'envs'
|
5
|
+
ENV_DIR = 'envs'
|
4
6
|
|
5
7
|
# Returns the env specific tfvars file path if it exists
|
6
8
|
def self.find_env_vars_file(config)
|
@@ -10,7 +12,7 @@ class YleTf
|
|
10
12
|
|
11
13
|
# Returns all envs that have tfvars files
|
12
14
|
def self.list_all_envs(config)
|
13
|
-
Dir.glob("#{config.module_dir}/#{ENV_DIR}/*.tfvars").map do |path|
|
15
|
+
Dir.glob("#{config.module_dir}/#{ENV_DIR}/*.tfvars").sort.map do |path|
|
14
16
|
File.basename(path, '.tfvars')
|
15
17
|
end
|
16
18
|
end
|
@@ -36,9 +38,20 @@ class YleTf
|
|
36
38
|
File.open(path, 'a') do |file|
|
37
39
|
file.puts # ensure we don't append to an existing line
|
38
40
|
vars.each do |key, value|
|
39
|
-
file.puts
|
41
|
+
file.puts "#{key} = #{eval_value(value)}"
|
40
42
|
end
|
41
43
|
end
|
42
44
|
end
|
45
|
+
|
46
|
+
def eval_value(value)
|
47
|
+
case value
|
48
|
+
when Hash
|
49
|
+
%({ #{value.map { |k, v| "#{k} = #{eval_value(v)}" }.join(', ')} })
|
50
|
+
when Array
|
51
|
+
%([ #{value.map { |item| eval_value(item) }.join(', ')} ])
|
52
|
+
else
|
53
|
+
%("#{value}")
|
54
|
+
end
|
55
|
+
end
|
43
56
|
end
|
44
57
|
end
|
data/lib/yle_tf/version.rb
CHANGED
@@ -1,13 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'rubygems'
|
2
4
|
|
3
5
|
class YleTf
|
4
6
|
# Helper class for comparing versions
|
5
7
|
class VersionRequirement
|
6
|
-
# Checks if the specified Terrform version is older than 0.9
|
7
|
-
def self.pre_0_9?(terraform_version)
|
8
|
-
new('< 0.9.0-beta').satisfied_by?(terraform_version)
|
9
|
-
end
|
10
|
-
|
11
8
|
attr_reader :requirement
|
12
9
|
|
13
10
|
def initialize(requirement)
|
@@ -1,14 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'yle_tf'
|
4
|
+
require 'yle_tf/backend'
|
2
5
|
|
3
6
|
module YleTfPlugins
|
4
7
|
module Backends
|
5
|
-
module
|
8
|
+
module Default
|
6
9
|
class Plugin < YleTf::Plugin
|
7
10
|
register
|
8
11
|
|
9
|
-
backend(
|
10
|
-
|
11
|
-
Command
|
12
|
+
backend(DEFAULT_BACKEND) do
|
13
|
+
YleTf::Backend
|
12
14
|
end
|
13
15
|
end
|
14
16
|
end
|
@@ -1,25 +1,24 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'pathname'
|
4
|
+
require 'yle_tf/backend'
|
5
|
+
require 'yle_tf/logger'
|
2
6
|
|
3
7
|
module YleTfPlugins
|
4
8
|
module Backends
|
5
9
|
module File
|
6
|
-
class
|
7
|
-
|
8
|
-
|
9
|
-
tfstate_path = tfstate_path(config)
|
10
|
-
|
10
|
+
class Backend < YleTf::Backend
|
11
|
+
# Symlinks local "terraform.tfstate" to the specified path
|
12
|
+
def configure
|
11
13
|
YleTf::Logger.info("Symlinking state to '#{tfstate_path}'")
|
14
|
+
local_path = Pathname.pwd.join('terraform.tfstate')
|
12
15
|
local_path.make_symlink(tfstate_path)
|
13
|
-
tfstate_path.write(tfstate_template, perm: 0o644) if !tfstate_path.exist?
|
14
16
|
|
15
|
-
|
16
|
-
'file',
|
17
|
-
'file' => tfstate_path.to_s
|
18
|
-
)
|
17
|
+
tfstate_path.write(tfstate_template, perm: 0o644) if !tfstate_path.exist?
|
19
18
|
end
|
20
19
|
|
21
|
-
def tfstate_path
|
22
|
-
config.module_dir.join(config.fetch('backend', 'file'))
|
20
|
+
def tfstate_path
|
21
|
+
@tfstate_path ||= config.module_dir.join(config.fetch('backend', 'file', 'path'))
|
23
22
|
end
|
24
23
|
|
25
24
|
def tfstate_template
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'yle_tf'
|
2
4
|
|
3
5
|
module YleTfPlugins
|
@@ -7,8 +9,8 @@ module YleTfPlugins
|
|
7
9
|
register
|
8
10
|
|
9
11
|
backend('file') do
|
10
|
-
require_relative '
|
11
|
-
|
12
|
+
require_relative 'backend'
|
13
|
+
Backend
|
12
14
|
end
|
13
15
|
end
|
14
16
|
end
|
metadata
CHANGED
@@ -1,59 +1,101 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yle_tf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yleisradio
|
8
8
|
- Teemu Matilainen
|
9
9
|
- Antti Forsell
|
10
|
-
autorequire:
|
10
|
+
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2020-10-12 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: thwait
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
18
|
+
requirements:
|
19
|
+
- - "~>"
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 0.2.0
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
requirements:
|
26
|
+
- - "~>"
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
version: 0.2.0
|
15
29
|
- !ruby/object:Gem::Dependency
|
16
30
|
name: bundler
|
17
31
|
requirement: !ruby/object:Gem::Requirement
|
18
32
|
requirements:
|
19
33
|
- - "~>"
|
20
34
|
- !ruby/object:Gem::Version
|
21
|
-
version: '
|
35
|
+
version: '2.0'
|
36
|
+
type: :development
|
37
|
+
prerelease: false
|
38
|
+
version_requirements: !ruby/object:Gem::Requirement
|
39
|
+
requirements:
|
40
|
+
- - "~>"
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '2.0'
|
43
|
+
- !ruby/object:Gem::Dependency
|
44
|
+
name: guard-rspec
|
45
|
+
requirement: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - "~>"
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: '4.7'
|
22
50
|
type: :development
|
23
51
|
prerelease: false
|
24
52
|
version_requirements: !ruby/object:Gem::Requirement
|
25
53
|
requirements:
|
26
54
|
- - "~>"
|
27
55
|
- !ruby/object:Gem::Version
|
28
|
-
version: '
|
56
|
+
version: '4.7'
|
29
57
|
- !ruby/object:Gem::Dependency
|
30
58
|
name: rake
|
31
59
|
requirement: !ruby/object:Gem::Requirement
|
32
60
|
requirements:
|
33
61
|
- - "~>"
|
34
62
|
- !ruby/object:Gem::Version
|
35
|
-
version: '
|
63
|
+
version: '13.0'
|
36
64
|
type: :development
|
37
65
|
prerelease: false
|
38
66
|
version_requirements: !ruby/object:Gem::Requirement
|
39
67
|
requirements:
|
40
68
|
- - "~>"
|
41
69
|
- !ruby/object:Gem::Version
|
42
|
-
version: '
|
70
|
+
version: '13.0'
|
43
71
|
- !ruby/object:Gem::Dependency
|
44
72
|
name: rspec
|
45
73
|
requirement: !ruby/object:Gem::Requirement
|
46
74
|
requirements:
|
47
75
|
- - "~>"
|
48
76
|
- !ruby/object:Gem::Version
|
49
|
-
version: '3.
|
77
|
+
version: '3.8'
|
78
|
+
type: :development
|
79
|
+
prerelease: false
|
80
|
+
version_requirements: !ruby/object:Gem::Requirement
|
81
|
+
requirements:
|
82
|
+
- - "~>"
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
version: '3.8'
|
85
|
+
- !ruby/object:Gem::Dependency
|
86
|
+
name: serverspec
|
87
|
+
requirement: !ruby/object:Gem::Requirement
|
88
|
+
requirements:
|
89
|
+
- - "~>"
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
version: '2.41'
|
50
92
|
type: :development
|
51
93
|
prerelease: false
|
52
94
|
version_requirements: !ruby/object:Gem::Requirement
|
53
95
|
requirements:
|
54
96
|
- - "~>"
|
55
97
|
- !ruby/object:Gem::Version
|
56
|
-
version: '
|
98
|
+
version: '2.41'
|
57
99
|
description: Tooling for Terraform to support environments, hooks, etc.
|
58
100
|
email:
|
59
101
|
- devops@yle.fi
|
@@ -77,15 +119,18 @@ files:
|
|
77
119
|
- lib/yle_tf/action/tmpdir.rb
|
78
120
|
- lib/yle_tf/action/verify_terraform_version.rb
|
79
121
|
- lib/yle_tf/action/verify_tf_env.rb
|
122
|
+
- lib/yle_tf/action/verify_yle_tf_version.rb
|
80
123
|
- lib/yle_tf/action/write_terraformrc_defaults.rb
|
81
|
-
- lib/yle_tf/
|
124
|
+
- lib/yle_tf/backend.rb
|
82
125
|
- lib/yle_tf/cli.rb
|
83
126
|
- lib/yle_tf/config.rb
|
84
127
|
- lib/yle_tf/config/defaults.rb
|
85
128
|
- lib/yle_tf/config/erb.rb
|
86
129
|
- lib/yle_tf/config/file.rb
|
87
130
|
- lib/yle_tf/config/loader.rb
|
131
|
+
- lib/yle_tf/config/migration.rb
|
88
132
|
- lib/yle_tf/error.rb
|
133
|
+
- lib/yle_tf/helpers/hash.rb
|
89
134
|
- lib/yle_tf/logger.rb
|
90
135
|
- lib/yle_tf/logger/colorize.rb
|
91
136
|
- lib/yle_tf/plugin.rb
|
@@ -101,11 +146,9 @@ files:
|
|
101
146
|
- lib/yle_tf/vars_file.rb
|
102
147
|
- lib/yle_tf/version.rb
|
103
148
|
- lib/yle_tf/version_requirement.rb
|
104
|
-
- lib/yle_tf_plugins/backends/
|
105
|
-
- lib/yle_tf_plugins/backends/file/
|
149
|
+
- lib/yle_tf_plugins/backends/__default/plugin.rb
|
150
|
+
- lib/yle_tf_plugins/backends/file/backend.rb
|
106
151
|
- lib/yle_tf_plugins/backends/file/plugin.rb
|
107
|
-
- lib/yle_tf_plugins/backends/s3/command.rb
|
108
|
-
- lib/yle_tf_plugins/backends/s3/plugin.rb
|
109
152
|
- lib/yle_tf_plugins/commands/__default/command.rb
|
110
153
|
- lib/yle_tf_plugins/commands/__default/plugin.rb
|
111
154
|
- lib/yle_tf_plugins/commands/_config/command.rb
|
@@ -117,7 +160,6 @@ files:
|
|
117
160
|
- lib/yle_tf_plugins/commands/version/command.rb
|
118
161
|
- lib/yle_tf_plugins/commands/version/plugin.rb
|
119
162
|
- vendor/hash_deep_merge.rb
|
120
|
-
- vendor/logger_level_patch.rb
|
121
163
|
- vendor/middleware/LICENSE
|
122
164
|
- vendor/middleware/builder.rb
|
123
165
|
- vendor/middleware/runner.rb
|
@@ -125,7 +167,7 @@ homepage: https://github.com/Yleisradio/yle_tf
|
|
125
167
|
licenses:
|
126
168
|
- MIT
|
127
169
|
metadata: {}
|
128
|
-
post_install_message:
|
170
|
+
post_install_message:
|
129
171
|
rdoc_options: []
|
130
172
|
require_paths:
|
131
173
|
- lib
|
@@ -133,16 +175,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
133
175
|
requirements:
|
134
176
|
- - ">="
|
135
177
|
- !ruby/object:Gem::Version
|
136
|
-
version: '2.
|
178
|
+
version: '2.3'
|
137
179
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
138
180
|
requirements:
|
139
181
|
- - ">="
|
140
182
|
- !ruby/object:Gem::Version
|
141
183
|
version: '0'
|
142
184
|
requirements: []
|
143
|
-
|
144
|
-
|
145
|
-
signing_key:
|
185
|
+
rubygems_version: 3.1.2
|
186
|
+
signing_key:
|
146
187
|
specification_version: 4
|
147
188
|
summary: Tooling for Terraform
|
148
189
|
test_files: []
|