terraspace 0.5.10 → 0.6.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. checksums.yaml +4 -4
  2. data/.github/ISSUE_TEMPLATE.md +2 -2
  3. data/.github/ISSUE_TEMPLATE/bug_report.md +4 -3
  4. data/.github/ISSUE_TEMPLATE/question.md +2 -2
  5. data/CHANGELOG.md +30 -7
  6. data/README.md +2 -0
  7. data/lib/terraspace/app.rb +36 -15
  8. data/lib/terraspace/app/inits.rb +13 -0
  9. data/lib/terraspace/booter.rb +19 -2
  10. data/lib/terraspace/cli.rb +13 -6
  11. data/lib/terraspace/cli/build/placeholder.rb +6 -1
  12. data/lib/terraspace/cli/commander.rb +1 -1
  13. data/lib/terraspace/cli/down.rb +1 -1
  14. data/lib/terraspace/cli/help/{cloud → tfc}/destroy.md +1 -1
  15. data/lib/terraspace/cli/help/{cloud → tfc}/list.md +1 -1
  16. data/lib/terraspace/cli/help/{cloud → tfc}/runs/list.md +3 -3
  17. data/lib/terraspace/cli/help/{cloud → tfc}/runs/prune.md +3 -3
  18. data/lib/terraspace/cli/help/{cloud → tfc}/sync.md +3 -3
  19. data/lib/terraspace/cli/init.rb +21 -8
  20. data/lib/terraspace/cli/state.rb +10 -0
  21. data/lib/terraspace/cli/{cloud.rb → tfc.rb} +3 -3
  22. data/lib/terraspace/cli/{cloud → tfc}/runs.rb +4 -4
  23. data/lib/terraspace/cli/up.rb +5 -3
  24. data/lib/terraspace/compiler/builder.rb +2 -0
  25. data/lib/terraspace/compiler/dirs_concern.rb +11 -1
  26. data/lib/terraspace/compiler/select.rb +28 -0
  27. data/lib/terraspace/compiler/strategy/tfvar.rb +16 -4
  28. data/lib/terraspace/compiler/strategy/tfvar/layer.rb +75 -52
  29. data/lib/terraspace/layering.rb +24 -0
  30. data/lib/terraspace/logger.rb +8 -1
  31. data/lib/terraspace/mod.rb +18 -3
  32. data/lib/terraspace/plugin/expander/friendly.rb +10 -0
  33. data/lib/terraspace/plugin/expander/interface.rb +6 -1
  34. data/lib/terraspace/plugin/summary/interface.rb +1 -1
  35. data/lib/terraspace/shell.rb +16 -1
  36. data/lib/terraspace/shell/error.rb +1 -1
  37. data/lib/terraspace/terraform/api/runs.rb +13 -2
  38. data/lib/terraspace/terraform/api/token.rb +2 -2
  39. data/lib/terraspace/terraform/api/var.rb +1 -1
  40. data/lib/terraspace/terraform/api/vars.rb +1 -1
  41. data/lib/terraspace/terraform/api/vars/base.rb +2 -0
  42. data/lib/terraspace/terraform/api/vars/json.rb +13 -1
  43. data/lib/terraspace/terraform/api/workspace.rb +10 -3
  44. data/lib/terraspace/terraform/args/default.rb +23 -13
  45. data/lib/terraspace/terraform/ihooks/after/plan.rb +17 -0
  46. data/lib/terraspace/terraform/ihooks/base.rb +8 -0
  47. data/lib/terraspace/terraform/ihooks/before/plan.rb +14 -0
  48. data/lib/terraspace/terraform/remote_state/fetcher.rb +1 -1
  49. data/lib/terraspace/terraform/runner.rb +12 -0
  50. data/lib/terraspace/terraform/{cloud → tfc}/runs.rb +1 -1
  51. data/lib/terraspace/terraform/{cloud → tfc}/runs/base.rb +1 -1
  52. data/lib/terraspace/terraform/{cloud → tfc}/runs/item_presenter.rb +1 -1
  53. data/lib/terraspace/terraform/{cloud → tfc}/runs/lister.rb +1 -1
  54. data/lib/terraspace/terraform/{cloud → tfc}/runs/pruner.rb +1 -1
  55. data/lib/terraspace/terraform/{cloud → tfc}/sync.rb +2 -2
  56. data/lib/terraspace/terraform/{cloud → tfc}/syncer.rb +1 -1
  57. data/lib/terraspace/terraform/{cloud → tfc}/workspace.rb +2 -3
  58. data/lib/terraspace/util/pretty.rb +2 -1
  59. data/lib/terraspace/version.rb +1 -1
  60. metadata +26 -19
  61. data/lib/terraspace/app/hooks.rb +0 -18
@@ -1,4 +1,4 @@
1
- class Terraspace::Terraform::Cloud::Runs
1
+ class Terraspace::Terraform::Tfc::Runs
2
2
  class Base
3
3
  extend Memoist
4
4
  include Terraspace::Util::Logging
@@ -1,4 +1,4 @@
1
- class Terraspace::Terraform::Cloud::Runs
1
+ class Terraspace::Terraform::Tfc::Runs
2
2
  class ItemPresenter
3
3
  attr_reader :id
4
4
  def initialize(raw)
@@ -1,4 +1,4 @@
1
- class Terraspace::Terraform::Cloud::Runs
1
+ class Terraspace::Terraform::Tfc::Runs
2
2
  class Lister < Base
3
3
  def run
4
4
  build_project
@@ -1,4 +1,4 @@
1
- class Terraspace::Terraform::Cloud::Runs
1
+ class Terraspace::Terraform::Tfc::Runs
2
2
  class Pruner < Base
3
3
  include Terraspace::Terraform::Api::Client
4
4
 
@@ -1,4 +1,4 @@
1
- module Terraspace::Terraform::Cloud
1
+ module Terraspace::Terraform::Tfc
2
2
  class Sync < Terraspace::CLI::Base
3
3
  extend Memoist
4
4
  include Terraspace::Terraform::Api::Client
@@ -16,7 +16,7 @@ module Terraspace::Terraform::Cloud
16
16
  # So we check and create the workspace if necessary.
17
17
  def run
18
18
  # Note: workspace still gets created by `terraform init` However, variables wont be sync if returns early
19
- return unless Terraspace.config.cloud.auto_sync || @options[:override_auto_sync]
19
+ return unless Terraspace.config.tfc.auto_sync || @options[:override_auto_sync]
20
20
  return unless workspaces_backend?
21
21
  logger.info "Syncing to Terraform Cloud: #{@mod.name} => #{workspace_name}"
22
22
  @api = Terraspace::Terraform::Api.new(@mod, remote)
@@ -1,4 +1,4 @@
1
- module Terraspace::Terraform::Cloud
1
+ module Terraspace::Terraform::Tfc
2
2
  class Syncer < Terraspace::CLI::Base
3
3
  extend Memoist
4
4
  include Terraspace::Compiler::DirsConcern
@@ -1,4 +1,4 @@
1
- module Terraspace::Terraform::Cloud
1
+ module Terraspace::Terraform::Tfc
2
2
  class Workspace < Terraspace::CLI::Base
3
3
  extend Memoist
4
4
  include Terraspace::Util::Logging
@@ -21,7 +21,7 @@ module Terraspace::Terraform::Cloud
21
21
  end
22
22
 
23
23
  def init
24
- Terraspace::CLI::Init.new(@options.merge(calling_command: "cloud-setup")).run
24
+ Terraspace::CLI::Init.new(@options).run
25
25
  end
26
26
 
27
27
  def create
@@ -72,4 +72,3 @@ module Terraspace::Terraform::Cloud
72
72
  end
73
73
  end
74
74
  end
75
-
@@ -12,7 +12,8 @@ module Terraspace::Util
12
12
  end
13
13
 
14
14
  def pretty_path(path)
15
- ENV['TS_TEST'] ? path : path.sub("#{Terraspace.root}/",'')
15
+ return path if ENV['TS_TEST']
16
+ path.sub("#{Terraspace.root}/",'').sub(ENV['HOME'], '~')
16
17
  end
17
18
  end
18
19
  end
@@ -1,3 +1,3 @@
1
1
  module Terraspace
2
- VERSION = "0.5.10"
2
+ VERSION = "0.6.2"
3
3
  end
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.10
4
+ version: 0.6.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: 2020-12-11 00:00:00.000000000 Z
11
+ date: 2021-03-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -461,7 +461,7 @@ files:
461
461
  - lib/terraspace/all/runner.rb
462
462
  - lib/terraspace/all/summary.rb
463
463
  - lib/terraspace/app.rb
464
- - lib/terraspace/app/hooks.rb
464
+ - lib/terraspace/app/inits.rb
465
465
  - lib/terraspace/autoloader.rb
466
466
  - lib/terraspace/booter.rb
467
467
  - lib/terraspace/builder.rb
@@ -478,8 +478,6 @@ files:
478
478
  - lib/terraspace/cli/clean/base.rb
479
479
  - lib/terraspace/cli/clean/cache.rb
480
480
  - lib/terraspace/cli/clean/logs.rb
481
- - lib/terraspace/cli/cloud.rb
482
- - lib/terraspace/cli/cloud/runs.rb
483
481
  - lib/terraspace/cli/commander.rb
484
482
  - lib/terraspace/cli/completer.rb
485
483
  - lib/terraspace/cli/completer/script.rb
@@ -502,11 +500,6 @@ files:
502
500
  - lib/terraspace/cli/help/clean/all.md
503
501
  - lib/terraspace/cli/help/clean/cache.md
504
502
  - lib/terraspace/cli/help/clean/logs.md
505
- - lib/terraspace/cli/help/cloud/destroy.md
506
- - lib/terraspace/cli/help/cloud/list.md
507
- - lib/terraspace/cli/help/cloud/runs/list.md
508
- - lib/terraspace/cli/help/cloud/runs/prune.md
509
- - lib/terraspace/cli/help/cloud/sync.md
510
503
  - lib/terraspace/cli/help/completion.md
511
504
  - lib/terraspace/cli/help/completion_script.md
512
505
  - lib/terraspace/cli/help/console.md
@@ -536,6 +529,11 @@ files:
536
529
  - lib/terraspace/cli/help/show.md
537
530
  - lib/terraspace/cli/help/summary.md
538
531
  - lib/terraspace/cli/help/test.md
532
+ - lib/terraspace/cli/help/tfc/destroy.md
533
+ - lib/terraspace/cli/help/tfc/list.md
534
+ - lib/terraspace/cli/help/tfc/runs/list.md
535
+ - lib/terraspace/cli/help/tfc/runs/prune.md
536
+ - lib/terraspace/cli/help/tfc/sync.md
539
537
  - lib/terraspace/cli/help/up.md
540
538
  - lib/terraspace/cli/help/validate.md
541
539
  - lib/terraspace/cli/info.rb
@@ -562,8 +560,11 @@ files:
562
560
  - lib/terraspace/cli/new/stack.rb
563
561
  - lib/terraspace/cli/new/test.rb
564
562
  - lib/terraspace/cli/seed.rb
563
+ - lib/terraspace/cli/state.rb
565
564
  - lib/terraspace/cli/summary.rb
566
565
  - lib/terraspace/cli/test.rb
566
+ - lib/terraspace/cli/tfc.rb
567
+ - lib/terraspace/cli/tfc/runs.rb
567
568
  - lib/terraspace/cli/tfc_concern.rb
568
569
  - lib/terraspace/cli/up.rb
569
570
  - lib/terraspace/command.rb
@@ -599,6 +600,7 @@ files:
599
600
  - lib/terraspace/compiler/erb/render.rb
600
601
  - lib/terraspace/compiler/expander.rb
601
602
  - lib/terraspace/compiler/helper_extender.rb
603
+ - lib/terraspace/compiler/select.rb
602
604
  - lib/terraspace/compiler/strategy/abstract_base.rb
603
605
  - lib/terraspace/compiler/strategy/mod.rb
604
606
  - lib/terraspace/compiler/strategy/mod/base.rb
@@ -625,6 +627,7 @@ files:
625
627
  - lib/terraspace/hooks/concern.rb
626
628
  - lib/terraspace/hooks/dsl.rb
627
629
  - lib/terraspace/hooks/runner.rb
630
+ - lib/terraspace/layering.rb
628
631
  - lib/terraspace/logger.rb
629
632
  - lib/terraspace/logger/formatter.rb
630
633
  - lib/terraspace/mod.rb
@@ -633,6 +636,7 @@ files:
633
636
  - lib/terraspace/plugin/backend/interface.rb
634
637
  - lib/terraspace/plugin/config/interface.rb
635
638
  - lib/terraspace/plugin/decorator/interface.rb
639
+ - lib/terraspace/plugin/expander/friendly.rb
636
640
  - lib/terraspace/plugin/expander/generic.rb
637
641
  - lib/terraspace/plugin/expander/interface.rb
638
642
  - lib/terraspace/plugin/finder.rb
@@ -664,14 +668,9 @@ files:
664
668
  - lib/terraspace/terraform/args/default.rb
665
669
  - lib/terraspace/terraform/args/dsl.rb
666
670
  - lib/terraspace/terraform/args/shorthands.rb
667
- - lib/terraspace/terraform/cloud/runs.rb
668
- - lib/terraspace/terraform/cloud/runs/base.rb
669
- - lib/terraspace/terraform/cloud/runs/item_presenter.rb
670
- - lib/terraspace/terraform/cloud/runs/lister.rb
671
- - lib/terraspace/terraform/cloud/runs/pruner.rb
672
- - lib/terraspace/terraform/cloud/sync.rb
673
- - lib/terraspace/terraform/cloud/syncer.rb
674
- - lib/terraspace/terraform/cloud/workspace.rb
671
+ - lib/terraspace/terraform/ihooks/after/plan.rb
672
+ - lib/terraspace/terraform/ihooks/base.rb
673
+ - lib/terraspace/terraform/ihooks/before/plan.rb
675
674
  - lib/terraspace/terraform/remote_state/fetcher.rb
676
675
  - lib/terraspace/terraform/remote_state/marker/output.rb
677
676
  - lib/terraspace/terraform/remote_state/marker/pretty_tracer.rb
@@ -679,6 +678,14 @@ files:
679
678
  - lib/terraspace/terraform/remote_state/unresolved.rb
680
679
  - lib/terraspace/terraform/runner.rb
681
680
  - lib/terraspace/terraform/runner/retryer.rb
681
+ - lib/terraspace/terraform/tfc/runs.rb
682
+ - lib/terraspace/terraform/tfc/runs/base.rb
683
+ - lib/terraspace/terraform/tfc/runs/item_presenter.rb
684
+ - lib/terraspace/terraform/tfc/runs/lister.rb
685
+ - lib/terraspace/terraform/tfc/runs/pruner.rb
686
+ - lib/terraspace/terraform/tfc/sync.rb
687
+ - lib/terraspace/terraform/tfc/syncer.rb
688
+ - lib/terraspace/terraform/tfc/workspace.rb
682
689
  - lib/terraspace/tester.rb
683
690
  - lib/terraspace/tester/finder.rb
684
691
  - lib/terraspace/tester/meta.rb
@@ -835,7 +842,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
835
842
  - !ruby/object:Gem::Version
836
843
  version: '0'
837
844
  requirements: []
838
- rubygems_version: 3.1.4
845
+ rubygems_version: 3.2.5
839
846
  signing_key:
840
847
  specification_version: 4
841
848
  summary: 'Terraspace: The Terraspace Framework'
@@ -1,18 +0,0 @@
1
- class Terraspace::App
2
- class Hooks
3
- class_attribute :hooks
4
- self.hooks = {}
5
-
6
- def on_boot(&block)
7
- self.class.hooks[:on_boot] = block
8
- end
9
-
10
- class << self
11
- def run_hook(name)
12
- name = name.to_sym
13
- hook = hooks[name]
14
- hook.call if hook
15
- end
16
- end
17
- end
18
- end