terraspace 1.1.1 → 1.1.2
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/CHANGELOG.md +8 -0
- data/lib/terraspace/cli/help/check_setup.md +2 -2
- data/lib/terraspace/cli/new/shim.rb +1 -1
- data/lib/terraspace/cli/setup/check.rb +7 -3
- data/lib/terraspace/command.rb +1 -1
- data/lib/terraspace/compiler/strategy/mod/text_file.rb +14 -13
- data/lib/terraspace/compiler/strategy/tfvar/layer.rb +3 -2
- data/lib/terraspace/core.rb +1 -1
- data/lib/terraspace/ext/core/module.rb +8 -1
- data/lib/terraspace/version.rb +1 -1
- 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: 6ad5587827bc4c9dcbae4cd2a42904e69ccf930bfa1a04c7e65d753178ff94f7
|
|
4
|
+
data.tar.gz: 122e5fb3135447e92bf12e7f5947ee665f5f77e024e6aea5499ad63a184eceea
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 0b6a0f432037f072acad01d60efb86d6e06314cea7ff75556dfb0de4ec077fe2479b215867702c8c6a615358a17c4568f30cfcf4a45011233f03b9c595a258ec
|
|
7
|
+
data.tar.gz: ed255135382340d2a44cd04f863f8fc9d8bb6562b413e04024a13f6e4bb31c2b19f837dbb7c05ee1220210ee4bf0bd6ce4a5d4e5628fb23eab61dd8a338c6b5b
|
data/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,14 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
This project *loosely tries* to adhere to [Semantic Versioning](http://semver.org/), even before v1.0.
|
|
5
5
|
|
|
6
|
+
## [1.1.2] - 2022-02-17
|
|
7
|
+
- [#200](https://github.com/boltops-tools/terraspace/pull/200) fix terraspace typos
|
|
8
|
+
- [#202](https://github.com/boltops-tools/terraspace/pull/202) Windows support: fix include_dir for windows
|
|
9
|
+
- [#203](https://github.com/boltops-tools/terraspace/pull/203) Fix ERB for windows
|
|
10
|
+
- [#204](https://github.com/boltops-tools/terraspace/pull/204) improve file check
|
|
11
|
+
- setup check terraform_bin windows support
|
|
12
|
+
- slight layering improvement strip trailing slash, helps with custom layering
|
|
13
|
+
|
|
6
14
|
## [1.1.1] - 2022-02-02
|
|
7
15
|
- [#199](https://github.com/boltops-tools/terraspace/pull/199) build required dependent stacks as part of terraspace up
|
|
8
16
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
## Example
|
|
2
2
|
|
|
3
3
|
$ terraspace check_setup
|
|
4
|
-
Detected
|
|
4
|
+
Detected Terraspace version: 0.3.3
|
|
5
5
|
Detected Terraform bin: /home/ec2-user/.tfenv/bin/terraform
|
|
6
6
|
Detected Terraform v0.13.2
|
|
7
7
|
Terraspace requires Terraform v0.12.x and above
|
|
8
8
|
You're all set!
|
|
9
|
-
$
|
|
9
|
+
$
|
|
@@ -11,7 +11,7 @@ class Terraspace::CLI::Setup
|
|
|
11
11
|
|
|
12
12
|
# Used for the CLI
|
|
13
13
|
def run
|
|
14
|
-
puts "Detected
|
|
14
|
+
puts "Detected Terraspace version: #{Terraspace::VERSION}"
|
|
15
15
|
if terraform_bin
|
|
16
16
|
puts "Detected Terraform bin: #{terraform_bin}"
|
|
17
17
|
puts "Detected #{terraform_version_message}"
|
|
@@ -65,8 +65,12 @@ class Terraspace::CLI::Setup
|
|
|
65
65
|
end
|
|
66
66
|
|
|
67
67
|
def terraform_bin
|
|
68
|
-
|
|
69
|
-
|
|
68
|
+
if Gem.win_platform?
|
|
69
|
+
out = "is terraform.exe".strip
|
|
70
|
+
else
|
|
71
|
+
out = `type terraform 2>&1`.strip
|
|
72
|
+
return unless $?.success?
|
|
73
|
+
end
|
|
70
74
|
md = out.match(/is (.*)/)
|
|
71
75
|
md[1] if md
|
|
72
76
|
end
|
data/lib/terraspace/command.rb
CHANGED
|
@@ -30,7 +30,7 @@ module Terraspace
|
|
|
30
30
|
include Terraspace::Util::Logging
|
|
31
31
|
|
|
32
32
|
def dispatch(m, args, options, config)
|
|
33
|
-
# Terraspace.argv provides consistency when terraspace is being called by rspec-
|
|
33
|
+
# Terraspace.argv provides consistency when terraspace is being called by rspec-terraspace test harness
|
|
34
34
|
Terraspace.argv = args.clone # important to clone since Thor removes the first argv
|
|
35
35
|
|
|
36
36
|
check_standalone_install!
|
|
@@ -8,28 +8,29 @@ class Terraspace::Compiler::Strategy::Mod
|
|
|
8
8
|
@filename = filename
|
|
9
9
|
end
|
|
10
10
|
|
|
11
|
-
@@already_reported = false
|
|
12
11
|
def check
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
logger.warn <<~EOL.color(:yellow)
|
|
16
|
-
WARN: The command 'file' is not installed.
|
|
17
|
-
Unable to check if files are text or binary files as a part of the Terraspace compile processing.
|
|
18
|
-
Assuming all files are not binary file.
|
|
12
|
+
return true if Gem.win_platform? # assume text file if on windows
|
|
13
|
+
return true unless file_installed?
|
|
19
14
|
|
|
20
|
-
Please install the file command to remove this warning message.
|
|
21
|
-
EOL
|
|
22
|
-
@@already_reported = true
|
|
23
|
-
return true
|
|
24
|
-
end
|
|
25
15
|
# Thanks: https://stackoverflow.com/questions/2355866/ruby-how-to-determine-if-file-being-read-is-binary-or-text
|
|
26
16
|
file_type, status = Open3.capture2e("file", @filename)
|
|
27
17
|
status.success? && file_type.include?("text")
|
|
28
18
|
end
|
|
29
19
|
|
|
30
20
|
private
|
|
21
|
+
@@has_file = nil
|
|
31
22
|
def file_installed?
|
|
32
|
-
|
|
23
|
+
return @@has_file unless @@has_file.nil?
|
|
24
|
+
@@has_file = system("type file > /dev/null 2>&1")
|
|
25
|
+
unless @@has_file
|
|
26
|
+
logger.warn <<~EOL.color(:yellow)
|
|
27
|
+
WARN: The command 'file' is not installed.
|
|
28
|
+
Unable to check if files are text or binary files as a part of the Terraspace compile processing.
|
|
29
|
+
Assuming all files are not binary file.
|
|
30
|
+
Please install the file command to remove this warning message.
|
|
31
|
+
EOL
|
|
32
|
+
end
|
|
33
|
+
@@has_file
|
|
33
34
|
end
|
|
34
35
|
end
|
|
35
36
|
end
|
|
@@ -58,8 +58,9 @@ class Terraspace::Compiler::Strategy::Tfvar
|
|
|
58
58
|
end
|
|
59
59
|
|
|
60
60
|
def full_layering
|
|
61
|
-
# layers
|
|
62
|
-
layers.
|
|
61
|
+
# layers defined in Terraspace::Layering module
|
|
62
|
+
all = layers.map { |layer| layer.sub(/\/$/,'') } # strip trailing slash
|
|
63
|
+
all.inject([]) do |sum, layer|
|
|
63
64
|
sum += layer_levels(layer) unless layer.nil?
|
|
64
65
|
sum
|
|
65
66
|
end
|
data/lib/terraspace/core.rb
CHANGED
|
@@ -59,7 +59,7 @@ module Terraspace
|
|
|
59
59
|
end
|
|
60
60
|
end
|
|
61
61
|
|
|
62
|
-
# Terraspace.argv provides consistency when terraspace is being called by rspec-
|
|
62
|
+
# Terraspace.argv provides consistency when terraspace is being called by rspec-terraspace test harness
|
|
63
63
|
# So use Terraspace.argv instead of ARGV constant
|
|
64
64
|
def argv=(argv)
|
|
65
65
|
@@argv = argv
|
|
@@ -5,8 +5,15 @@ class Module
|
|
|
5
5
|
# include Provider
|
|
6
6
|
# # etc
|
|
7
7
|
#
|
|
8
|
+
# Caller lines are different for OSes:
|
|
9
|
+
#
|
|
10
|
+
# windows: "C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/terraspace-1.1.1/lib/terraspace/builder.rb:34:in `build'"
|
|
11
|
+
# linux: "/home/ec2-user/.rvm/gems/ruby-3.0.3/gems/terraspace-1.1.1//lib/terraspace/compiler/dsl/syntax/mod.rb:4:in `<module:Mod>'"
|
|
12
|
+
#
|
|
8
13
|
def include_dir(dir)
|
|
9
|
-
|
|
14
|
+
caller_line = caller[0]
|
|
15
|
+
parts = caller_line.split(':')
|
|
16
|
+
calling_file = caller_line.match(/^[a-zA-Z]:/) ? parts[1] : parts[0]
|
|
10
17
|
parent_dir = File.dirname(calling_file)
|
|
11
18
|
|
|
12
19
|
full_dir = "#{parent_dir}/#{dir}"
|
data/lib/terraspace/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: terraspace
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.1.
|
|
4
|
+
version: 1.1.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Tung Nguyen
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2022-02-
|
|
11
|
+
date: 2022-02-17 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activesupport
|