terraform_landscape 0.2.2 → 0.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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7eb8ec1bcf22cf01150a1934248b46c2e0603bc16bdb1ac0cbfd32a8ef8a54d4
|
4
|
+
data.tar.gz: 23f41d4a701ae0aa315352976cabb088cd05efa83e0c9e7b07ab56b5713bd09e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ce15fc65aecbcca148c1c0fa773dd5e8ab4b13ec4305b5c7b7b921f2f7e4dbfd380ef61642c2734dd1fcfa22deae637e6bac578254d0182186b90d106e714829
|
7
|
+
data.tar.gz: f433aef801d0e0d02d8669075785f3817a5bf3febf6c4a26235c79e989953cc1a4981dc8a83584f3855089f5d08cde567f2f70b3fddd1c221684c3c94a0cb15f
|
@@ -30,9 +30,14 @@ module TerraformLandscape
|
|
30
30
|
|
31
31
|
def define_commands
|
32
32
|
command :print do |c|
|
33
|
-
c.action do
|
34
|
-
print
|
33
|
+
c.action do |_args, options|
|
34
|
+
print(options.__hash__)
|
35
35
|
end
|
36
|
+
c.description = <<-TXT
|
37
|
+
Pretty-prints your Terraform plan output.
|
38
|
+
|
39
|
+
If an error occurs while parsing the Terraform output, print will automatically fall back on the original Terraform output. To view the stack trace instead, provide the global --trace option.
|
40
|
+
TXT
|
36
41
|
end
|
37
42
|
|
38
43
|
global_option '--no-color', 'Do not output any color' do
|
@@ -43,9 +48,9 @@ module TerraformLandscape
|
|
43
48
|
default_command :print
|
44
49
|
end
|
45
50
|
|
46
|
-
def print
|
51
|
+
def print(options)
|
47
52
|
printer = Printer.new(@output)
|
48
|
-
printer.process_stream(STDIN)
|
53
|
+
printer.process_stream(STDIN, options)
|
49
54
|
end
|
50
55
|
end
|
51
56
|
end
|
@@ -6,4 +6,7 @@ module TerraformLandscape
|
|
6
6
|
|
7
7
|
REPO_URL = 'https://github.com/coinbase/terraform_landscape'.freeze
|
8
8
|
BUG_REPORT_URL = "#{REPO_URL}/issues".freeze
|
9
|
+
|
10
|
+
FALLBACK_MESSAGE = 'Terraform Landscape: a parsing error occured.' \
|
11
|
+
' Falling back to original Terraform output...'.freeze
|
9
12
|
end
|
@@ -8,9 +8,10 @@ module TerraformLandscape
|
|
8
8
|
@output = output
|
9
9
|
end
|
10
10
|
|
11
|
-
def process_stream(io) # rubocop:disable Metrics/MethodLength
|
11
|
+
def process_stream(io, options = {}) # rubocop:disable Metrics/MethodLength
|
12
12
|
apply = nil
|
13
13
|
buffer = StringIO.new
|
14
|
+
original_tf_output = StringIO.new
|
14
15
|
begin
|
15
16
|
block_size = 1024
|
16
17
|
|
@@ -21,7 +22,9 @@ module TerraformLandscape
|
|
21
22
|
|
22
23
|
readable_fds.each do |f|
|
23
24
|
begin
|
24
|
-
|
25
|
+
new_output = f.read_nonblock(block_size)
|
26
|
+
original_tf_output << new_output
|
27
|
+
buffer << strip_ansi(new_output)
|
25
28
|
rescue IO::WaitReadable # rubocop:disable Lint/HandleExceptions
|
26
29
|
# Ignore; we'll call IO.select again
|
27
30
|
rescue EOFError
|
@@ -34,9 +37,17 @@ module TerraformLandscape
|
|
34
37
|
replace: ''))
|
35
38
|
done = true if apply
|
36
39
|
end
|
37
|
-
process_string(buffer.string)
|
38
40
|
|
39
|
-
|
41
|
+
begin
|
42
|
+
process_string(buffer.string)
|
43
|
+
@output.print apply if apply
|
44
|
+
rescue ParseError, TerraformPlan::ParseError => e
|
45
|
+
raise e if options[:trace]
|
46
|
+
|
47
|
+
@output.warning FALLBACK_MESSAGE
|
48
|
+
@output.print original_tf_output.string
|
49
|
+
end
|
50
|
+
|
40
51
|
@output.write_from(io)
|
41
52
|
ensure
|
42
53
|
io.close
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: terraform_landscape
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Coinbase
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2019-01-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: colorize
|
@@ -53,20 +53,6 @@ dependencies:
|
|
53
53
|
- - "~>"
|
54
54
|
- !ruby/object:Gem::Version
|
55
55
|
version: '3.0'
|
56
|
-
- !ruby/object:Gem::Dependency
|
57
|
-
name: string_undump
|
58
|
-
requirement: !ruby/object:Gem::Requirement
|
59
|
-
requirements:
|
60
|
-
- - "~>"
|
61
|
-
- !ruby/object:Gem::Version
|
62
|
-
version: 0.1.1
|
63
|
-
type: :runtime
|
64
|
-
prerelease: false
|
65
|
-
version_requirements: !ruby/object:Gem::Requirement
|
66
|
-
requirements:
|
67
|
-
- - "~>"
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
version: 0.1.1
|
70
56
|
- !ruby/object:Gem::Dependency
|
71
57
|
name: treetop
|
72
58
|
requirement: !ruby/object:Gem::Requirement
|
@@ -112,15 +98,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
112
98
|
requirements:
|
113
99
|
- - ">="
|
114
100
|
- !ruby/object:Gem::Version
|
115
|
-
version: '2'
|
101
|
+
version: '2.5'
|
116
102
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
117
103
|
requirements:
|
118
104
|
- - ">="
|
119
105
|
- !ruby/object:Gem::Version
|
120
106
|
version: '0'
|
121
107
|
requirements: []
|
122
|
-
|
123
|
-
rubygems_version: 2.7.7
|
108
|
+
rubygems_version: 3.0.1
|
124
109
|
signing_key:
|
125
110
|
specification_version: 4
|
126
111
|
summary: Pretty-print Terraform plan output
|