terraspace 0.5.11 → 0.5.12
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 +4 -0
- data/lib/terraspace/app.rb +2 -1
- data/lib/terraspace/cli.rb +1 -1
- data/lib/terraspace/cli/build/placeholder.rb +6 -1
- data/lib/terraspace/compiler/dirs_concern.rb +11 -1
- data/lib/terraspace/compiler/select.rb +28 -0
- data/lib/terraspace/shell/error.rb +1 -1
- data/lib/terraspace/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 85fe397ec78c3f7aef5a84305c0a1f64bb6c8f1fe600f42b0d6595de4b5e579b
|
|
4
|
+
data.tar.gz: 5549151c17289da5bf06dcdbae93437cd53ec338c1e8f6649fef7f2c71eb21da
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 3155ac6e54e382836f73fa2bd3904544bbc9be86eb9a7f4a140a78062e83c320c493efc67fa92db0fa5d5a7e994d8293b674f324f70ff39b5242130883d6c28c
|
|
7
|
+
data.tar.gz: 368950badea2768a4221593d65eadda27c3a84eb4f2f1a9b4af0e5a53da05faa67cbfff8d99850d846c2e64aa110bd347178866e2caa05e9e084c8411489a9af
|
data/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,10 @@
|
|
|
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
|
+
## [0.5.12] - 2021-02-27
|
|
7
|
+
- [#79](https://github.com/boltops-tools/terraspace/pull/79) Fix syntax issue
|
|
8
|
+
- [#85](https://github.com/boltops-tools/terraspace/pull/85) Add all.include_stacks option and fix all.ignore_stacks option when building dependency graph
|
|
9
|
+
|
|
6
10
|
## [0.5.11] - 2021-02-11
|
|
7
11
|
- [#76](https://github.com/boltops-tools/terraspace/pull/76) dont use auto generated plan when both yes and plan options used
|
|
8
12
|
- fix plan path when 2 stacks of same name run at the same time
|
data/lib/terraspace/app.rb
CHANGED
|
@@ -17,7 +17,8 @@ module Terraspace
|
|
|
17
17
|
config.all.exit_on_fail = ActiveSupport::OrderedOptions.new
|
|
18
18
|
config.all.exit_on_fail.down = true
|
|
19
19
|
config.all.exit_on_fail.up = true
|
|
20
|
-
config.all.ignore_stacks =
|
|
20
|
+
config.all.ignore_stacks = nil
|
|
21
|
+
config.all.include_stacks = nil
|
|
21
22
|
config.allow = ActiveSupport::OrderedOptions.new
|
|
22
23
|
config.allow.envs = nil
|
|
23
24
|
config.allow.regions = nil
|
data/lib/terraspace/cli.rb
CHANGED
|
@@ -144,7 +144,7 @@ module Terraspace
|
|
|
144
144
|
desc "seed STACK", "Build starer seed tfvars file."
|
|
145
145
|
long_desc Help.text(:seed)
|
|
146
146
|
option :yes, aliases: :y, type: :boolean, desc: "bypass prompts and force overwrite files"
|
|
147
|
-
option :where, desc: "where to create file. either under app or seed folder structure. values:
|
|
147
|
+
option :where, desc: "where to create file. either under app or seed folder structure. values: seed or stack"
|
|
148
148
|
init_option.call
|
|
149
149
|
instance_option.call
|
|
150
150
|
def seed(mod)
|
|
@@ -26,7 +26,12 @@ module Terraspace::CLI::Build
|
|
|
26
26
|
|
|
27
27
|
# Used by: terraspace build placeholder
|
|
28
28
|
def find_stack
|
|
29
|
-
|
|
29
|
+
stack_paths = Dir.glob("{app,vendor}/stacks/*")
|
|
30
|
+
stack_paths.select! do |path|
|
|
31
|
+
select = Terraspace::Compiler::Select.new(path)
|
|
32
|
+
select.selected?
|
|
33
|
+
end
|
|
34
|
+
mod_path = stack_paths.last
|
|
30
35
|
unless mod_path
|
|
31
36
|
logger.info "No stacks found."
|
|
32
37
|
exit 0
|
|
@@ -23,6 +23,7 @@ module Terraspace::Compiler
|
|
|
23
23
|
names, built = [], []
|
|
24
24
|
local_paths(type_dir).each do |path|
|
|
25
25
|
next unless File.directory?(path)
|
|
26
|
+
next unless select_stack?(type_dir, path)
|
|
26
27
|
mod_name = File.basename(path)
|
|
27
28
|
next if built.include?(mod_name) # ensures modules in app folder take higher precedence than vendor folder
|
|
28
29
|
names << mod_name
|
|
@@ -31,6 +32,15 @@ module Terraspace::Compiler
|
|
|
31
32
|
end
|
|
32
33
|
memoize :mod_names
|
|
33
34
|
|
|
35
|
+
# Examples:
|
|
36
|
+
# type_dir stacks
|
|
37
|
+
# path /home/ec2-user/environment/downloads/infra/app/stacks/demo
|
|
38
|
+
def select_stack?(type_dir, path)
|
|
39
|
+
return true unless type_dir == "stacks"
|
|
40
|
+
select = Terraspace::Compiler::Select.new(path)
|
|
41
|
+
select.selected?
|
|
42
|
+
end
|
|
43
|
+
|
|
34
44
|
def local_paths(type_dir)
|
|
35
45
|
dirs("app/#{type_dir}/*") + dirs("vendor/#{type_dir}/*")
|
|
36
46
|
end
|
|
@@ -40,7 +50,7 @@ module Terraspace::Compiler
|
|
|
40
50
|
end
|
|
41
51
|
|
|
42
52
|
def stack_names
|
|
43
|
-
mod_names("stacks")
|
|
53
|
+
mod_names("stacks")
|
|
44
54
|
end
|
|
45
55
|
memoize :stack_names
|
|
46
56
|
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
module Terraspace::Compiler
|
|
2
|
+
class Select
|
|
3
|
+
def initialize(path)
|
|
4
|
+
@path = path
|
|
5
|
+
@stack_name = extract_stack_name(path)
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def selected?
|
|
9
|
+
all = Terraspace.config.all
|
|
10
|
+
# Key difference between include_stacks vs all.include_stacks option is that
|
|
11
|
+
# the option can be nil. The local variable is guaranteed to be an Array.
|
|
12
|
+
# This simplifies the logic.
|
|
13
|
+
include_stacks = all.include_stacks || []
|
|
14
|
+
ignore_stacks = all.ignore_stacks || []
|
|
15
|
+
|
|
16
|
+
if all.include_stacks.nil?
|
|
17
|
+
!ignore_stacks.include?(@stack_name)
|
|
18
|
+
else
|
|
19
|
+
stacks = include_stacks - ignore_stacks
|
|
20
|
+
stacks.include?(@stack_name)
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def extract_stack_name(path)
|
|
25
|
+
path.sub(%r{.*(app|vendor)/stacks/}, '')
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -13,7 +13,7 @@ class Terraspace::Shell
|
|
|
13
13
|
if reinit_required?
|
|
14
14
|
Terraspace::InitRequiredError.new(@lines)
|
|
15
15
|
elsif bucket_not_found?
|
|
16
|
-
Terraspace::
|
|
16
|
+
Terraspace::BucketNotFoundError.new(@lines)
|
|
17
17
|
elsif shared_cache_error?
|
|
18
18
|
Terraspace::SharedCacheError.new(@lines)
|
|
19
19
|
end
|
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: 0.5.
|
|
4
|
+
version: 0.5.12
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Tung Nguyen
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2021-02-
|
|
11
|
+
date: 2021-02-27 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activesupport
|
|
@@ -599,6 +599,7 @@ files:
|
|
|
599
599
|
- lib/terraspace/compiler/erb/render.rb
|
|
600
600
|
- lib/terraspace/compiler/expander.rb
|
|
601
601
|
- lib/terraspace/compiler/helper_extender.rb
|
|
602
|
+
- lib/terraspace/compiler/select.rb
|
|
602
603
|
- lib/terraspace/compiler/strategy/abstract_base.rb
|
|
603
604
|
- lib/terraspace/compiler/strategy/mod.rb
|
|
604
605
|
- lib/terraspace/compiler/strategy/mod/base.rb
|