tfw 0.1.0 → 0.1.1
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/.rubocop.yml +1 -1
- data/Gemfile.lock +43 -3
- data/lib/tfw/version.rb +1 -1
- data/lib/tfw.rb +27 -4
- data/tfw.gemspec +5 -2
- metadata +48 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ad4debed6a45cf690648c936cc987154659d1d71226e1b6d16b4e155c9986230
|
4
|
+
data.tar.gz: 112964765b0d7ee4a17afae705212da4d354d6192e53a2c9e25437a4eaee6709
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8b1442234f7acf0a9f962aee78874cb6a957b517b0def7878f3c70ca9a7387d0cff38956c4f2609b3b8dcec20cface96f5d3f7df1bbb1f49b7a4303b75a9566c
|
7
|
+
data.tar.gz: d298b29308862738cf3da97ef006f0d863f6772e570637024421ec8882ce674c5b8012c1be4e5952d3dac36b478cf487126521512ca3b9d14dcbf1f987800cf7
|
data/.rubocop.yml
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,23 +1,63 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
tfw (0.1.
|
5
|
-
tfdsl (
|
4
|
+
tfw (0.1.1)
|
5
|
+
tfdsl (= 0.1.2)
|
6
6
|
|
7
7
|
GEM
|
8
8
|
remote: https://rubygems.org/
|
9
9
|
specs:
|
10
|
+
ast (2.4.0)
|
11
|
+
coderay (1.1.2)
|
12
|
+
coveralls (0.8.22)
|
13
|
+
json (>= 1.8, < 3)
|
14
|
+
simplecov (~> 0.16.1)
|
15
|
+
term-ansicolor (~> 1.3)
|
16
|
+
thor (~> 0.19.4)
|
17
|
+
tins (~> 1.6)
|
18
|
+
docile (1.3.1)
|
19
|
+
jaro_winkler (1.5.4)
|
20
|
+
json (2.1.0)
|
21
|
+
method_source (0.9.2)
|
10
22
|
minitest (5.12.2)
|
23
|
+
parallel (1.19.1)
|
24
|
+
parser (2.7.0.2)
|
25
|
+
ast (~> 2.4.0)
|
26
|
+
pry (0.12.2)
|
27
|
+
coderay (~> 1.1.0)
|
28
|
+
method_source (~> 0.9.0)
|
29
|
+
rainbow (3.0.0)
|
11
30
|
rake (10.5.0)
|
12
|
-
|
31
|
+
rubocop (0.79.0)
|
32
|
+
jaro_winkler (~> 1.5.1)
|
33
|
+
parallel (~> 1.10)
|
34
|
+
parser (>= 2.7.0.1)
|
35
|
+
rainbow (>= 2.2.2, < 4.0)
|
36
|
+
ruby-progressbar (~> 1.7)
|
37
|
+
unicode-display_width (>= 1.4.0, < 1.7)
|
38
|
+
ruby-progressbar (1.10.1)
|
39
|
+
simplecov (0.16.1)
|
40
|
+
docile (~> 1.1)
|
41
|
+
json (>= 1.8, < 3)
|
42
|
+
simplecov-html (~> 0.10.0)
|
43
|
+
simplecov-html (0.10.2)
|
44
|
+
term-ansicolor (1.7.1)
|
45
|
+
tins (~> 1.0)
|
46
|
+
tfdsl (0.1.2)
|
47
|
+
thor (0.19.4)
|
48
|
+
tins (1.20.2)
|
49
|
+
unicode-display_width (1.6.1)
|
13
50
|
|
14
51
|
PLATFORMS
|
15
52
|
ruby
|
16
53
|
|
17
54
|
DEPENDENCIES
|
18
55
|
bundler (~> 1.17)
|
56
|
+
coveralls (~> 0.8)
|
19
57
|
minitest (~> 5.0)
|
58
|
+
pry (~> 0.12)
|
20
59
|
rake (~> 10.0)
|
60
|
+
rubocop (~> 0.79)
|
21
61
|
tfw!
|
22
62
|
|
23
63
|
BUNDLED WITH
|
data/lib/tfw/version.rb
CHANGED
data/lib/tfw.rb
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
require 'tfw/version'
|
4
4
|
require 'tfdsl'
|
5
|
+
require 'json'
|
5
6
|
|
6
7
|
# TFW is a Terraform Wrapper which uses terraform DSL for Ruby
|
7
8
|
module TFW
|
@@ -15,6 +16,10 @@ module TFW
|
|
15
16
|
WORKSPACE = './.tfw'
|
16
17
|
FileUtils.mkdir_p WORKSPACE
|
17
18
|
|
19
|
+
def as_json?
|
20
|
+
!ENV['TFW_AS_JSON'].nil?
|
21
|
+
end
|
22
|
+
|
18
23
|
def get_stack_for_dir(dir, input = nil)
|
19
24
|
files = Dir.glob "#{dir}/*.rb"
|
20
25
|
stack = TFDSL.stack do
|
@@ -25,13 +30,14 @@ module TFW
|
|
25
30
|
end
|
26
31
|
|
27
32
|
def cli(args)
|
28
|
-
|
29
|
-
s = TFW.get_stack_for_dir '.'
|
33
|
+
stack = TFW.get_stack_for_dir '.'
|
30
34
|
|
31
|
-
|
35
|
+
stack_file = "#{WORKSPACE}/stack.tf"
|
36
|
+
write_stack_file stack_file, stack
|
32
37
|
|
33
38
|
old_dir = Dir.pwd
|
34
39
|
Dir.chdir WORKSPACE
|
40
|
+
|
35
41
|
cmd = "terraform #{args.join ' '}"
|
36
42
|
Process.wait(fork { exec cmd })
|
37
43
|
Dir.chdir old_dir
|
@@ -47,12 +53,29 @@ module TFW
|
|
47
53
|
mpath = "./modules/#{mname}"
|
48
54
|
|
49
55
|
FileUtils.mkdir_p "#{WORKSPACE}/#{mpath}"
|
50
|
-
|
56
|
+
|
57
|
+
stack_file = "#{WORKSPACE}/#{mpath}/stack.tf"
|
58
|
+
write_stack_file stack_file, mstack
|
51
59
|
|
52
60
|
stack.tfmodule mname do
|
53
61
|
source mpath
|
54
62
|
end
|
55
63
|
end
|
64
|
+
|
65
|
+
def write_stack_file(stack_file, stack)
|
66
|
+
[stack_file, "#{stack_file}.json"].each { |f| FileUtils.rm_f f }
|
67
|
+
|
68
|
+
if as_json?
|
69
|
+
stack_file = "#{stack_file}.json"
|
70
|
+
File.write stack_file, pretty_json(stack.to_json)
|
71
|
+
else
|
72
|
+
File.write stack_file, stack
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
def pretty_json(json)
|
77
|
+
JSON.pretty_generate JSON.parse(json)
|
78
|
+
end
|
56
79
|
end
|
57
80
|
|
58
81
|
def tfw_load_module(&block)
|
data/tfw.gemspec
CHANGED
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
|
|
18
18
|
# Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
|
19
19
|
# to allow pushing to a single host or delete this section to allow pushing to any host.
|
20
20
|
if spec.respond_to?(:metadata)
|
21
|
-
#spec.metadata['allowed_push_host'] = "TODO: Set to 'http://mygemserver.com'"
|
21
|
+
# spec.metadata['allowed_push_host'] = "TODO: Set to 'http://mygemserver.com'"
|
22
22
|
|
23
23
|
spec.metadata['homepage_uri'] = spec.homepage
|
24
24
|
else
|
@@ -35,9 +35,12 @@ Gem::Specification.new do |spec|
|
|
35
35
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
36
36
|
spec.require_paths = ['lib']
|
37
37
|
|
38
|
-
spec.add_dependency 'tfdsl', '
|
38
|
+
spec.add_dependency 'tfdsl', '0.1.2'
|
39
39
|
|
40
40
|
spec.add_development_dependency 'bundler', '~> 1.17'
|
41
|
+
spec.add_development_dependency 'coveralls', '~> 0.8'
|
41
42
|
spec.add_development_dependency 'minitest', '~> 5.0'
|
43
|
+
spec.add_development_dependency 'pry', '~> 0.12'
|
42
44
|
spec.add_development_dependency 'rake', '~> 10.0'
|
45
|
+
spec.add_development_dependency 'rubocop', '~> 0.79'
|
43
46
|
end
|
metadata
CHANGED
@@ -1,29 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tfw
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tiago Lopo
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-01-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: tfdsl
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 0.1.2
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 0.1.2
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '1.17'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: coveralls
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0.8'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0.8'
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: minitest
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -52,6 +66,20 @@ dependencies:
|
|
52
66
|
- - "~>"
|
53
67
|
- !ruby/object:Gem::Version
|
54
68
|
version: '5.0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: pry
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0.12'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0.12'
|
55
83
|
- !ruby/object:Gem::Dependency
|
56
84
|
name: rake
|
57
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -66,6 +94,20 @@ dependencies:
|
|
66
94
|
- - "~>"
|
67
95
|
- !ruby/object:Gem::Version
|
68
96
|
version: '10.0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rubocop
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0.79'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0.79'
|
69
111
|
description: Terraform Wrapper using Terraform DSL for Ruby
|
70
112
|
email:
|
71
113
|
- tiagolopo@yahoo.com.br
|