terraspace 0.7.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
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