terraspace 0.7.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4d6b5c8b44ff632fd2687d25b1319b11b467affcc4d9220a03ce0316adc9e801
4
- data.tar.gz: 87c47fee989731e10a314c3b792917eb11141656d6435e3a8ec1083f2e690e24
3
+ metadata.gz: b24e7a97ebf99ac393d03ef6ffec1381fae0508ae2c9f6bbaa9f0d7aad3139c3
4
+ data.tar.gz: 5f553f4265a69128ef74dc7fdf22ea1dafbe0b2f73396fa4fa9b98cfcf24060a
5
5
  SHA512:
6
- metadata.gz: dee89bac4527b8d370cf6c27d145d54345f05878d08cab08220135dfeae1515ef4c7f91eb4f75cfe3aa56e29536da47bc675071573e984fc34fdf41b36034af9
7
- data.tar.gz: ae59aaa40c073fcc7229519f3b5b9463610ddd0c0fcff0a8b3f8106d52b85147bf19215a2b7fa864034fb8306550010edf31f21634fbd511eca0a077111fe046
6
+ metadata.gz: 2cd672d6cd5bafdb40f2275a4ee34eab50ac3855b4df2ee535a89b3732f1fda7f07693da14bf2d9c82d49ae07871debdc115aca4e175068148917fa37b6694ec
7
+ data.tar.gz: b3103984ef841b2082abf33fd84505db942e09b1a6a8bd0ca0a45774dbb018a31c202f1a3cf9fb0c7a87f1a51abf3825acbd12b325fa12264150d42deb323af8
data/CHANGELOG.md CHANGED
@@ -3,6 +3,44 @@
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.0.1] - 2022-01-15
7
+ - [#189](https://github.com/boltops-tools/terraspace/pull/189) dotenv support
8
+
9
+ ## [1.0.0] - 2022-01-08
10
+ Highlights:
11
+ - Non-cloud provider support
12
+ - Better passthrough terraspace options to terraform. Pretty much all terraform options are now supported.
13
+ - Remove `terraspace_plugin_*` gem dependencies out of core
14
+ - Improve top CLI help: group main commands at top
15
+
16
+ Details:
17
+ - [#168](https://github.com/boltops-tools/terraspace/pull/168) terraspace new example command
18
+ - [#169](https://github.com/boltops-tools/terraspace/pull/169) fix new plugin generator, use right include Helper
19
+ - [#170](https://github.com/boltops-tools/terraspace/pull/170) remove project --test-structure option in favor of terraspace new test --type project
20
+ - [#171](https://github.com/boltops-tools/terraspace/pull/171) improve cli help: group main commands at top
21
+ - [#172](https://github.com/boltops-tools/terraspace/pull/172) better wrap and pass through terraform args
22
+ - [#173](https://github.com/boltops-tools/terraspace/pull/173) remove `terraspace_plugin_*` gem dependencies out of core
23
+ - [#174](https://github.com/boltops-tools/terraspace/pull/174) support non-cloud providers and backends
24
+ - [#175](https://github.com/boltops-tools/terraspace/pull/175) Pass args cleanup
25
+ - [#176](https://github.com/boltops-tools/terraspace/pull/176) fix new example command
26
+ - [#177](https://github.com/boltops-tools/terraspace/pull/177) Shim message
27
+ - [#178](https://github.com/boltops-tools/terraspace/pull/178) fix no backend.tf src file case
28
+ - [#179](https://github.com/boltops-tools/terraspace/pull/179) terraspace check setup command
29
+ - [#180](https://github.com/boltops-tools/terraspace/pull/180) hide check_setup command
30
+ - [#181](https://github.com/boltops-tools/terraspace/pull/181) generator improvements: core examples for plugin=none. creates simple random_pet
31
+ - [#182](https://github.com/boltops-tools/terraspace/pull/182) move backend auto creation to runner stage
32
+ - [#183](https://github.com/boltops-tools/terraspace/pull/183) fix example generator lang option
33
+ - allow --version command to run outside terraspace project
34
+ - allow terraspace -help to work also
35
+ - friendly shim message for gem dependency resolution errors
36
+ - Pretty much release 0.7.x
37
+
38
+ ## [0.7.2] - 2022-01-05
39
+ - [#187](https://github.com/boltops-tools/terraspace/pull/187) put thor cli options at the end
40
+
41
+ ## [0.7.1] - 2022-01-04
42
+ - [#185](https://github.com/boltops-tools/terraspace/pull/185) pass value through untouch when expand method not defined
43
+
6
44
  ## [0.7.0] - 2021-12-30
7
45
  Highlights:
8
46
  - Non-cloud provider support
data/README.md CHANGED
@@ -8,18 +8,22 @@
8
8
 
9
9
  [![BoltOps Badge](https://img.boltops.com/boltops/badges/boltops-badge.png)](https://www.boltops.com)
10
10
 
11
- The Terraform Framework.
11
+ [![BoltOps Learn Badge](https://img.boltops.com/boltops-learn/boltops-learn.png)](https://learn.boltops.com)
12
+
12
13
 
13
- Please **watch/star** this repo to help grow and support the project.
14
+ The Terraform Framework.
14
15
 
15
16
  Official Docs Site: [terraspace.cloud](https://terraspace.cloud)
16
17
 
17
- Quick Start Demo:
18
+ ## Support the Project
18
19
 
19
- [![Watch the video](https://img.boltops.com/boltops/tools/terraspace/youtube/terraspace-quick-start.png)](https://learn.boltops.com/courses/terraspace-fundamentals/lessons/terraspace-quick-start)
20
+ * Please **watch/star** this repo to help grow and support the project.
21
+ * Consider subscribing to [BoltOps Learn](https://learn.boltops.com/). You'll get access to many training videos. Subscribing helps support the project.
20
22
 
21
23
  ## Quick Start
22
24
 
25
+ [![Watch the video](https://img.boltops.com/boltops/tools/terraspace/youtube/terraspace-quick-start.png)](https://learn.boltops.com/courses/terraspace-fundamentals/lessons/terraspace-quick-start)
26
+
23
27
  Here are commands to get started:
24
28
 
25
29
  terraspace new project infra --plugin aws --examples
@@ -13,6 +13,7 @@ terraform.tfvars
13
13
  # Common ruby files
14
14
  *.gem
15
15
  *.rbc
16
+ .env*
16
17
  .idea
17
18
  /.bundle
18
19
  /.config
@@ -1,6 +1,7 @@
1
1
  module Terraspace
2
2
  module Booter
3
3
  def boot
4
+ Dotenv.new.load!
4
5
  run_hooks
5
6
  Terraspace::Bundle.require # load plugins
6
7
  load_plugin_default_configs
@@ -0,0 +1,25 @@
1
+ require 'dotenv'
2
+
3
+ module Terraspace
4
+ class Dotenv
5
+ def load!
6
+ ::Dotenv.load(*files)
7
+ end
8
+
9
+ # dotenv files with the following precedence:
10
+ #
11
+ # - .env.dev.local - Highest precedence
12
+ # - .env.dev
13
+ # - .env.local
14
+ # - .env - Lowest precedence
15
+ #
16
+ def files
17
+ [
18
+ ".env.#{Terraspace.env}.local",
19
+ ".env.#{Terraspace.env}",
20
+ ".env.local",
21
+ ".env",
22
+ ].compact
23
+ end
24
+ end
25
+ end
@@ -76,9 +76,13 @@ module Terraspace::Plugin::Expander
76
76
  .sub('TMP_KEEP_HTTP', '://') # restore :// IE: https:// or http://
77
77
  end
78
78
 
79
- def var_value(name)
80
- name = name.sub(':','').downcase
81
- value = send(name).to_s
79
+ def var_value(unexpanded)
80
+ name = unexpanded.sub(':','').downcase
81
+ if respond_to?(name)
82
+ value = send(name).to_s
83
+ else
84
+ return unexpanded
85
+ end
82
86
  if name == "namespace" && Terraspace.config.layering.enable_names.expansion
83
87
  value = friendly_name(value)
84
88
  end
@@ -18,7 +18,7 @@ module Terraspace::Terraform
18
18
 
19
19
  # default at end in case of redirection. IE: terraform output > /path
20
20
  def args
21
- args = custom.args + thor.args + pass.args
21
+ args = custom.args + pass.args + thor.args
22
22
  args.uniq
23
23
  end
24
24
 
@@ -28,18 +28,18 @@ module Terraspace::Terraform
28
28
  end
29
29
  memoize :custom
30
30
 
31
- # From Thor defined/managed cli @options
32
- def thor
33
- Args::Thor.new(@mod, @name, @options)
34
- end
35
- memoize :thor
36
-
37
31
  # From Thor passthrough cli @options[:args]
38
32
  def pass
39
33
  Args::Pass.new(@mod, @name, @options)
40
34
  end
41
35
  memoize :pass
42
36
 
37
+ # From Thor defined/managed cli @options
38
+ def thor
39
+ Args::Thor.new(@mod, @name, @options)
40
+ end
41
+ memoize :thor
42
+
43
43
  def terraform(name, *args)
44
44
  current_dir_message # only show once
45
45
 
@@ -1,3 +1,3 @@
1
1
  module Terraspace
2
- VERSION = "0.7.0"
2
+ VERSION = "1.0.1"
3
3
  end
data/terraspace.gemspec CHANGED
@@ -22,6 +22,7 @@ Gem::Specification.new do |spec|
22
22
  spec.add_dependency "bundler"
23
23
  spec.add_dependency "cli-format"
24
24
  spec.add_dependency "deep_merge"
25
+ spec.add_dependency "dotenv"
25
26
  spec.add_dependency "dsl_evaluator"
26
27
  spec.add_dependency "eventmachine-tail"
27
28
  spec.add_dependency "graph"
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.7.0
4
+ version: 1.0.1
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-12-30 00:00:00.000000000 Z
11
+ date: 2022-01-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: dotenv
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: dsl_evaluator
71
85
  requirement: !ruby/object:Gem::Requirement
@@ -635,6 +649,7 @@ files:
635
649
  - lib/terraspace/dependency/helper/output.rb
636
650
  - lib/terraspace/dependency/node.rb
637
651
  - lib/terraspace/dependency/registry.rb
652
+ - lib/terraspace/dotenv.rb
638
653
  - lib/terraspace/ext.rb
639
654
  - lib/terraspace/ext/bundler.rb
640
655
  - lib/terraspace/ext/core/module.rb