guard-terraform 1.0.0 → 1.0.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/lib/guard/terraform/version.rb +1 -1
- data/lib/guard/terraform.rb +29 -11
- data/lib/terraform.rb +8 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 42c6614a4b4d8c9de19825c6e3959c392f4edb8f2641e48658873db3642bb3a4
|
4
|
+
data.tar.gz: 57595bd4449cbcf06851508175c80217bd7d91ad490726df0af08890385f9ccc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2e324f81d68630ff90790c0cccf1bd5cd894f3fb6de1194fbd9828358d2b21ca21e01347ee8a460a372e85d58166f3890a53df3c5f1ad67e5531307554e9eb59
|
7
|
+
data.tar.gz: d1dc22204bf90613e249ad37c3a0d90f5696ead97b7f5d5a95a8b0804d28c656a355eef214b3e731638244d1fc25ad03e3bcfcc59a41149b618d912f8b412ec2
|
data/lib/guard/terraform.rb
CHANGED
@@ -18,7 +18,8 @@ module Guard
|
|
18
18
|
write: false, # fix the formatting instead of just verifying?
|
19
19
|
}.freeze
|
20
20
|
|
21
|
-
attr_reader :options
|
21
|
+
attr_reader :options
|
22
|
+
attr_reader :terraform, :tf_flags
|
22
23
|
|
23
24
|
def initialize(**options)
|
24
25
|
super
|
@@ -49,13 +50,19 @@ module Guard
|
|
49
50
|
end
|
50
51
|
|
51
52
|
def run_all
|
53
|
+
paths = ['.']
|
54
|
+
extra_flags = {}
|
55
|
+
|
52
56
|
if terraform.pre_0_12?
|
53
57
|
# Terraform v<0.12 does not check *.tfvars by default,
|
54
|
-
# so
|
55
|
-
|
58
|
+
# so find and check them separately
|
59
|
+
paths += terraform.find_tfvars_files
|
56
60
|
else
|
57
|
-
|
61
|
+
# Terraform 0.12+ does not check recursively by default
|
62
|
+
extra_flags[:recursive] = true
|
58
63
|
end
|
64
|
+
|
65
|
+
run(paths, extra_flags)
|
59
66
|
end
|
60
67
|
|
61
68
|
def run_on_modifications(paths)
|
@@ -65,10 +72,11 @@ module Guard
|
|
65
72
|
alias run_on_additions run_on_modifications
|
66
73
|
|
67
74
|
def run(paths, **extra_flags)
|
75
|
+
print_pre_run_message(paths)
|
76
|
+
|
68
77
|
flags = tf_flags.merge(extra_flags)
|
69
78
|
|
70
|
-
result = terraform.fmt(paths, flags) do |
|
71
|
-
UI.info("#{flags[:write] ? 'Enforcing' : 'Inspecting'} Terraform formatting: #{path}")
|
79
|
+
result = terraform.fmt(paths, flags) do |_, cmd|
|
72
80
|
UI.debug(Shellwords.join(cmd))
|
73
81
|
end
|
74
82
|
|
@@ -78,6 +86,21 @@ module Guard
|
|
78
86
|
throw(:task_has_failed)
|
79
87
|
end
|
80
88
|
|
89
|
+
def print_pre_run_message(paths)
|
90
|
+
@msg_format ||= "#{options[:write] ? 'Enforcing' : 'Inspecting'} " \
|
91
|
+
'Terraform formatting for %s'
|
92
|
+
|
93
|
+
target = if paths.count > 1
|
94
|
+
"#{paths.count} files or dirs"
|
95
|
+
elsif paths.first == '.'
|
96
|
+
'the whole project'
|
97
|
+
else
|
98
|
+
paths.first
|
99
|
+
end
|
100
|
+
|
101
|
+
UI.info(format(@msg_format, target))
|
102
|
+
end
|
103
|
+
|
81
104
|
def notify_failure
|
82
105
|
Notifier.notify(
|
83
106
|
'Terraform format check failed',
|
@@ -86,11 +109,6 @@ module Guard
|
|
86
109
|
)
|
87
110
|
end
|
88
111
|
|
89
|
-
# Returns list of all Terraform files
|
90
|
-
def all_tf_files
|
91
|
-
Dir['**/*.{tf,tfvars}']
|
92
|
-
end
|
93
|
-
|
94
112
|
# Terraform 0.12+ only supports checking directories,
|
95
113
|
# older versions accept also files
|
96
114
|
def mungle_paths(paths)
|
data/lib/terraform.rb
CHANGED
@@ -31,6 +31,14 @@ class Terraform
|
|
31
31
|
VersionRequirement.new('< 0.12.0-alpha').satisfied_by?(version)
|
32
32
|
end
|
33
33
|
|
34
|
+
# Finds all *.tfvars files recursively in the given directory,
|
35
|
+
# or current working directory if not specified.
|
36
|
+
def find_tfvars_files(dir = nil, &block)
|
37
|
+
dir = "#{dir}/" if dir && !dir.empty? && dir[-1] != '/'
|
38
|
+
|
39
|
+
Dir.glob("#{dir}**/*.tfvars", &block)
|
40
|
+
end
|
41
|
+
|
34
42
|
# Returns `Array` of CLI flags for Terraform
|
35
43
|
# E.g. `{ foo: true, bar: 'baz' }` -> `[ '-foo=true', '-bar=baz' ]`
|
36
44
|
def cli_flags(**flags)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: guard-terraform
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Teemu Matilainen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-01-
|
11
|
+
date: 2019-01-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: guard
|