terraspace 0.3.3 → 0.3.4

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.
Files changed (74) hide show
  1. checksums.yaml +4 -4
  2. data/.cody/aws/bin/build.sh +2 -0
  3. data/.cody/azurerm/bin/build.sh +2 -0
  4. data/.cody/google/bin/build.sh +2 -0
  5. data/CHANGELOG.md +10 -0
  6. data/lib/terraspace.rb +1 -0
  7. data/lib/terraspace/all/summary.rb +21 -1
  8. data/lib/terraspace/cli.rb +25 -25
  9. data/lib/terraspace/cli/all.rb +9 -9
  10. data/lib/terraspace/cli/cloud.rb +3 -9
  11. data/lib/terraspace/cli/cloud/runs.rb +0 -2
  12. data/lib/terraspace/cli/help/all/down.md +32 -0
  13. data/lib/terraspace/cli/help/all/graph.md +21 -0
  14. data/lib/terraspace/cli/help/all/output.md +22 -0
  15. data/lib/terraspace/cli/help/all/plan.md +25 -0
  16. data/lib/terraspace/cli/help/all/providers.md +21 -0
  17. data/lib/terraspace/cli/help/all/refresh.md +17 -0
  18. data/lib/terraspace/cli/help/all/show.md +21 -0
  19. data/lib/terraspace/cli/help/all/up.md +27 -0
  20. data/lib/terraspace/cli/help/all/validate.md +21 -0
  21. data/lib/terraspace/cli/help/build.md +6 -0
  22. data/lib/terraspace/cli/help/bundle.md +9 -5
  23. data/lib/terraspace/cli/help/check_setup.md +9 -0
  24. data/lib/terraspace/cli/help/clean.md +5 -0
  25. data/lib/terraspace/cli/help/cloud/destroy.md +16 -0
  26. data/lib/terraspace/cli/help/cloud/list.md +7 -0
  27. data/lib/terraspace/cli/help/cloud/runs/list.md +3 -3
  28. data/lib/terraspace/cli/help/cloud/runs/prune.md +1 -1
  29. data/lib/terraspace/cli/help/cloud/sync.md +26 -2
  30. data/lib/terraspace/cli/help/console.md +8 -0
  31. data/lib/terraspace/cli/help/down.md +26 -0
  32. data/lib/terraspace/cli/help/info.md +43 -0
  33. data/lib/terraspace/cli/help/init.md +37 -0
  34. data/lib/terraspace/cli/help/list.md +20 -0
  35. data/lib/terraspace/cli/help/log.md +2 -0
  36. data/lib/terraspace/cli/help/logs/remove.md +5 -0
  37. data/lib/terraspace/cli/help/logs/truncate.md +5 -0
  38. data/lib/terraspace/cli/help/new/bootstrap_test.md +8 -0
  39. data/lib/terraspace/cli/help/new/example.md +8 -0
  40. data/lib/terraspace/cli/help/new/git_hook.md +6 -0
  41. data/lib/terraspace/cli/help/new/module.md +9 -0
  42. data/lib/terraspace/cli/help/new/module_test.md +12 -0
  43. data/lib/terraspace/cli/help/new/plugin.md +49 -0
  44. data/lib/terraspace/cli/help/new/project.md +40 -0
  45. data/lib/terraspace/cli/help/new/project_test.md +8 -0
  46. data/lib/terraspace/cli/help/new/shim.md +21 -0
  47. data/lib/terraspace/cli/help/new/stack.md +9 -0
  48. data/lib/terraspace/cli/help/output.md +6 -0
  49. data/lib/terraspace/cli/help/plan.md +29 -0
  50. data/lib/terraspace/cli/help/providers.md +18 -0
  51. data/lib/terraspace/cli/help/refresh.md +11 -0
  52. data/lib/terraspace/cli/help/seed.md +7 -0
  53. data/lib/terraspace/cli/help/show.md +36 -0
  54. data/lib/terraspace/cli/help/summary.md +11 -0
  55. data/lib/terraspace/cli/help/test.md +35 -0
  56. data/lib/terraspace/cli/help/up.md +30 -0
  57. data/lib/terraspace/cli/help/validate.md +9 -0
  58. data/lib/terraspace/cli/info.rb +4 -16
  59. data/lib/terraspace/cli/logs.rb +1 -1
  60. data/lib/terraspace/cli/new.rb +18 -18
  61. data/lib/terraspace/cli/new/git_hook.rb +4 -1
  62. data/lib/terraspace/cli/new/project.rb +1 -1
  63. data/lib/terraspace/cli/summary.rb +2 -2
  64. data/lib/terraspace/command.rb +1 -1
  65. data/lib/terraspace/dependency/graph.rb +2 -1
  66. data/lib/terraspace/plugin/summary/interface.rb +1 -1
  67. data/lib/terraspace/shell.rb +14 -4
  68. data/lib/terraspace/terraform/cloud/runs/lister.rb +0 -2
  69. data/lib/terraspace/terraform/cloud/syncer.rb +2 -2
  70. data/lib/terraspace/terraform/cloud/workspace.rb +0 -9
  71. data/lib/terraspace/version.rb +1 -1
  72. data/spec/terraspace/all/summary_spec.rb +1 -1
  73. metadata +43 -3
  74. data/lib/terraspace/cli/help/update.md +0 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e4501185815eeebafbdadd49e8afac52af4fc1c6b8d6d297269614482a38df47
4
- data.tar.gz: b532e32f8c4a2a34e14b528649ff313041610adb7fc89349f7f97336a4c767d0
3
+ metadata.gz: 82d3075dd4d1feefc14c645c634b80fca976887120ccf4e531385745e7d4df3e
4
+ data.tar.gz: e3c035ee09b574247d563e3261e4f51e7d93bc5a6bf5af4d3b0ab083864f25af
5
5
  SHA512:
6
- metadata.gz: b8e949cadb19e163b961bebc40cc8e31bfba8e6ccefb07e28cdabb88a6cf0696a7a8a62b7f4c5f73ab1ae420c9b1956f38d2916f65ad0bfae3ee4e64ba885de5
7
- data.tar.gz: 0f0ef1edc6432743dc6f3535449c880615057038a4e097ca03227660d7dd39270da8186675c26315f86636344635017d16f4c60fef580dfb6188bd0c785e92ab
6
+ metadata.gz: 384d8c9ff03eec838719ebe438dd9ad047558e0e4d495732f66561364b9100879bf498609bf931e29def28c5e4e3c0cb5ad4875cde4955a46dd63f850ec43887
7
+ data.tar.gz: f475ab2126fe8c7807c9811a2f9f734cc9c47c702c61daa7b3cd4c995a192aa5b3669cde26f92c57b0592adf0131f4dbc80b45e0641900bca2090162d4e7529b
@@ -10,4 +10,6 @@ export PATH=~/bin:$PATH # ~/bin/terraspace wrapper
10
10
  set -x
11
11
  terraspace new project infra --examples
12
12
  cd infra
13
+ terraspace new bootstrap_test
14
+ terraspace new project_test demo --examples
13
15
  terraspace test
@@ -17,4 +17,6 @@ export ARM_TENANT_ID=$(cat ~/.azure/app-client.json | jq -r '.tenant_id')
17
17
  set -x
18
18
  terraspace new project infra --examples --plugin azurerm
19
19
  cd infra
20
+ terraspace new bootstrap_test
21
+ terraspace new project_test demo --examples --plugin azurerm
20
22
  terraspace test
@@ -14,4 +14,6 @@ export GOOGLE_PROJECT=$(cat $GOOGLE_APPLICATION_CREDENTIALS | jq -r '.project_id
14
14
  set -x
15
15
  terraspace new project infra --examples --plugin google
16
16
  cd infra
17
+ terraspace new bootstrap_test
18
+ terraspace new project_test demo --examples --plugin google
17
19
  terraspace test
@@ -3,6 +3,16 @@
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.3.4]
7
+ * #42 update cli docs and bug fixes
8
+ * fix console by using system instead of popen3
9
+ * fix build for edge case when app/modules exist but app/stacks do not
10
+ * terraspace new project: do not generate spec folder by default
11
+ * improve all output summary
12
+ * remove redundant `terraspace cloud setup`, instead use: `terraspace cloud sync`
13
+ * improve terraspace info output
14
+ * fix integration test pipeline
15
+
6
16
  ## [0.3.3]
7
17
  * #41 fix `terraspace build` and `terraspace seed` when bucket doesnt exist yet and there are dependenices defined.
8
18
 
@@ -6,6 +6,7 @@ require "active_support/core_ext/class"
6
6
  require "active_support/core_ext/hash"
7
7
  require "active_support/core_ext/string"
8
8
  require "active_support/ordered_options"
9
+ require "cli-format"
9
10
  require "deep_merge/rails_compat"
10
11
  require "dsl_evaluator"
11
12
  require "fileutils"
@@ -51,7 +51,15 @@ module Terraspace::All
51
51
  end
52
52
 
53
53
  def output
54
- @lines # pass through all output info
54
+ if @lines.grep(/No outputs found/).empty?
55
+ @lines.select! do |line|
56
+ line.include?(" = ") # looks like output
57
+ end
58
+ else
59
+ @lines.select! do |line|
60
+ line.include?("No outputs found")
61
+ end
62
+ end
55
63
  end
56
64
 
57
65
  def show
@@ -65,6 +73,18 @@ module Terraspace::All
65
73
  @lines.unshift(summary) # add to top
66
74
  end
67
75
 
76
+ # [2020-09-19T19:36:33 #14387 terraspace providers c1]: => terraform providers
77
+ # [2020-09-19T19:36:33 #14387 terraspace providers c1]:
78
+ # [2020-09-19T19:36:33 #14387 terraspace providers c1]: Providers required by configuration:
79
+ # [2020-09-19T19:36:33 #14387 terraspace providers c1]: .
80
+ # [2020-09-19T19:36:33 #14387 terraspace providers c1]: └── provider[registry.terraform.io/hashicorp/random]
81
+ # [2020-09-19T19:36:33 #14387 terraspace providers c1]:
82
+ def providers
83
+ @lines.select! do |line|
84
+ line.include?("provider[")
85
+ end
86
+ end
87
+
68
88
  # [2020-09-07T14:53:36 #31106 terraspace show b1]: Outputs:
69
89
  # [2020-09-07T14:53:36 #31106 terraspace show b1]:
70
90
  # [2020-09-07T14:53:36 #31106 terraspace show b1]: length = 1
@@ -44,7 +44,7 @@ module Terraspace
44
44
  long_desc Help.text(:new)
45
45
  subcommand "new", New
46
46
 
47
- desc "build [STACK]", "build"
47
+ desc "build [STACK]", "Build project."
48
48
  long_desc Help.text(:build)
49
49
  option :quiet, type: :boolean, desc: "quiet output"
50
50
  instance_option.call
@@ -53,32 +53,32 @@ module Terraspace
53
53
  Terraspace::Builder.new(options.merge(mod: mod)).run # building any stack builds them all
54
54
  end
55
55
 
56
- desc "bundle", "bundle"
56
+ desc "bundle", "Bundle with Terrafile."
57
57
  long_desc Help.text(:bundle)
58
58
  def bundle(*args)
59
59
  Bundle.new(options.merge(args: args)).run
60
60
  end
61
61
 
62
- desc "check_setup", "check_setup"
62
+ desc "check_setup", "Check setup."
63
63
  long_desc Help.text(:check_setup)
64
64
  def check_setup
65
65
  CheckSetup.new(options).run
66
66
  end
67
67
 
68
- desc "clean", "clean .terraspace-cache dir"
68
+ desc "clean", "Removes .terraspace-cache dir."
69
69
  long_desc Help.text(:clean)
70
70
  def clean
71
71
  Clean.new(options).run
72
72
  end
73
73
 
74
- desc "console STACK", "console .terraspace-cache dir"
74
+ desc "console STACK", "Run console in built terraform project."
75
75
  long_desc Help.text(:console)
76
76
  instance_option.call
77
77
  def console(mod)
78
- Commander.new("console", options.merge(mod: mod)).run
78
+ Commander.new("console", options.merge(mod: mod, shell: "system")).run
79
79
  end
80
80
 
81
- desc "down STACK", "down"
81
+ desc "down STACK", "Destroy infrastructure stack."
82
82
  long_desc Help.text(:down)
83
83
  instance_option.call
84
84
  yes_option.call
@@ -88,29 +88,29 @@ module Terraspace
88
88
  Down.new(options.merge(mod: mod)).run
89
89
  end
90
90
 
91
- desc "info STACK", "info"
91
+ desc "info STACK", "Get info about stack."
92
92
  long_desc Help.text(:info)
93
- format_option.call
94
93
  instance_option.call
94
+ option :format, desc: "Output formats: #{CliFormat.formats.join(', ')}"
95
95
  def info(mod)
96
96
  Info.new(options.merge(mod: mod)).run
97
97
  end
98
98
 
99
- desc "init STACK", "init"
99
+ desc "init STACK", "Run init in built terraform project."
100
100
  long_desc Help.text(:init)
101
101
  instance_option.call
102
102
  def init(mod)
103
103
  Commander.new("init", options.merge(mod: mod, quiet: false)).run
104
104
  end
105
105
 
106
- desc "list", "list stacks and modules"
106
+ desc "list", "List stacks and modules."
107
107
  long_desc Help.text(:list)
108
108
  option :type, aliases: %w[t], desc: "Type: stack or module. Default all"
109
109
  def list
110
110
  List.new(options).run
111
111
  end
112
112
 
113
- desc "log [ACTION] [STACK]", "The log command allows you to view multiple logs."
113
+ desc "log [ACTION] [STACK]", "View and tail logs."
114
114
  long_desc Help.text("log")
115
115
  option :timestamps, aliases: %w[t], type: :boolean, desc: "Whether or not to show the leading timestamp. Defaults to timestamps for multiple logs, and no timestamp if a single log is specified. Note: In follow mode, timestamp always shown"
116
116
  option :follow, aliases: %w[f], type: :boolean, desc: "Follow the log in live tail fashion. Must specify a stack if using this option."
@@ -120,7 +120,7 @@ module Terraspace
120
120
  Log.new(@options.merge(action: action, stack: stack)).run
121
121
  end
122
122
 
123
- desc "plan STACK", "plan stack"
123
+ desc "plan STACK", "Plan stack."
124
124
  long_desc Help.text(:plan)
125
125
  auto_option.call
126
126
  input_option.call
@@ -131,21 +131,21 @@ module Terraspace
131
131
  Commander.new("plan", options.merge(mod: mod)).run
132
132
  end
133
133
 
134
- desc "providers STACK", "providers"
134
+ desc "providers STACK", "Show providers."
135
135
  long_desc Help.text(:providers)
136
136
  instance_option.call
137
137
  def providers(mod)
138
138
  Commander.new("providers", options.merge(mod: mod)).run
139
139
  end
140
140
 
141
- desc "refresh STACK", "refresh"
141
+ desc "refresh STACK", "Run refresh."
142
142
  long_desc Help.text(:refresh)
143
143
  instance_option.call
144
144
  def refresh(mod)
145
145
  Commander.new("refresh", options.merge(mod: mod)).run
146
146
  end
147
147
 
148
- desc "seed STACK", "seed"
148
+ desc "seed STACK", "Build starer seed tfvars file."
149
149
  long_desc Help.text(:seed)
150
150
  option :yes, aliases: :y, type: :boolean, desc: "bypass prompts and force overwrite files"
151
151
  option :where, desc: "where to create file. either under app or seed folder structure. values: app or stack"
@@ -155,8 +155,8 @@ module Terraspace
155
155
  Seed.new(options.merge(mod: mod)).run
156
156
  end
157
157
 
158
- desc "summary", "Summary of resources"
159
- long_desc Help.text(:clean)
158
+ desc "summary", "Summarize resources."
159
+ long_desc Help.text(:summary)
160
160
  option :mod, desc: "Module to build to generate a backend file for discovery. By default the last module is used. Usually, it wont matter."
161
161
  init_option.call
162
162
  option :short, aliases: %w[s], type: :boolean, desc: "Only show statefiles"
@@ -164,7 +164,7 @@ module Terraspace
164
164
  Summary.new(options).run
165
165
  end
166
166
 
167
- desc "show STACK", "show"
167
+ desc "show STACK", "Run show."
168
168
  long_desc Help.text(:show)
169
169
  instance_option.call
170
170
  option :plan, desc: "path to created.plan"
@@ -173,13 +173,13 @@ module Terraspace
173
173
  Commander.new("show", options.merge(mod: mod)).run
174
174
  end
175
175
 
176
- desc "test", "test"
176
+ desc "test", "Run test."
177
177
  long_desc Help.text(:test)
178
178
  def test
179
179
  Test.new(options).run
180
180
  end
181
181
 
182
- desc "output STACK", "output"
182
+ desc "output STACK", "Run output."
183
183
  long_desc Help.text(:output)
184
184
  format_option.call
185
185
  instance_option.call
@@ -188,8 +188,8 @@ module Terraspace
188
188
  Commander.new("output", options.merge(mod: mod)).run
189
189
  end
190
190
 
191
- desc "up STACK", "Deploy infrastructure. IE: terraform apply"
192
- long_desc Help.text(:update)
191
+ desc "up STACK", "Deploy infrastructure stack."
192
+ long_desc Help.text(:up)
193
193
  auto_option.call
194
194
  init_option.call
195
195
  input_option.call
@@ -202,7 +202,7 @@ module Terraspace
202
202
  Up.new(options.merge(mod: mod)).run
203
203
  end
204
204
 
205
- desc "validate STACK", "validate"
205
+ desc "validate STACK", "Validate stack."
206
206
  long_desc Help.text(:validate)
207
207
  instance_option.call
208
208
  def validate(mod)
@@ -221,7 +221,7 @@ module Terraspace
221
221
  Completer::Script.generate
222
222
  end
223
223
 
224
- desc "version", "prints version"
224
+ desc "version", "Prints version."
225
225
  def version
226
226
  puts VERSION
227
227
  end
@@ -3,14 +3,14 @@ class Terraspace::CLI
3
3
  class_option :yes, aliases: :y, type: :boolean, desc: "auto approve all batch commands"
4
4
  class_option :exit_on_fail, type: :boolean, desc: "whether or not to exit when one of the batch commands fails"
5
5
 
6
- desc "down", "destroy all"
6
+ desc "down", "Destroy all or multiple stacks."
7
7
  long_desc Help.text("all/down")
8
8
  option :destroy_workspace, type: :boolean, desc: "Also destroy the Cloud workspace. Only applies when using Terraform Cloud remote backend."
9
9
  def down(*stacks)
10
10
  Terraspace::All::Runner.new("down", @options.merge(stacks: stacks)).run
11
11
  end
12
12
 
13
- desc "graph", "graph all"
13
+ desc "graph", "Draw a dependency graph."
14
14
  long_desc Help.text("all/graph")
15
15
  option :format, default: "png", desc: "format: text or diagram"
16
16
  option :full,type: :boolean, desc: "draw the full graph with highlighted nodes or draw the subgraph. text format defaults to false, graph format defaults to true"
@@ -18,43 +18,43 @@ class Terraspace::CLI
18
18
  Terraspace::All::Grapher.new(@options.merge(stacks: stacks)).run
19
19
  end
20
20
 
21
- desc "refresh", "refresh all"
21
+ desc "refresh", "Refresh all or multiple stacks."
22
22
  long_desc Help.text("all/refresh")
23
23
  def refresh(*stacks)
24
24
  Terraspace::All::Runner.new("refresh", @options.merge(stacks: stacks)).run
25
25
  end
26
26
 
27
- desc "output", "output all"
27
+ desc "output", "Show output for all or multiple stacks."
28
28
  long_desc Help.text("all/output")
29
29
  def output(*stacks)
30
30
  Terraspace::All::Runner.new("output", @options.merge(stacks: stacks)).run
31
31
  end
32
32
 
33
- desc "plan", "plan all"
33
+ desc "plan", "Run plan for all or multiple stacks."
34
34
  long_desc Help.text("all/plan")
35
35
  def plan(*stacks)
36
36
  Terraspace::All::Runner.new("plan", @options.merge(stacks: stacks)).run
37
37
  end
38
38
 
39
- desc "providers", "providers all"
39
+ desc "providers", "Show providers for all or multiple stacks."
40
40
  long_desc Help.text("all/providers")
41
41
  def providers(*stacks)
42
42
  Terraspace::All::Runner.new("providers", @options.merge(stacks: stacks)).run
43
43
  end
44
44
 
45
- desc "show", "show all"
45
+ desc "show", "Run show for all or multiple stacks."
46
46
  long_desc Help.text("all/show")
47
47
  def show(*stacks)
48
48
  Terraspace::All::Runner.new("show", @options.merge(stacks: stacks)).run
49
49
  end
50
50
 
51
- desc "up", "deploy all"
51
+ desc "up", "Deploy all or multiple stacks."
52
52
  long_desc Help.text("all/up")
53
53
  def up(*stacks)
54
54
  Terraspace::All::Runner.new("up", @options.merge(stacks: stacks)).run
55
55
  end
56
56
 
57
- desc "validate", "validate all"
57
+ desc "validate", "Validate all or multiple stacks."
58
58
  long_desc Help.text("all/validate")
59
59
  def validate(*stacks)
60
60
  Terraspace::All::Runner.new("validate", @options.merge(stacks: stacks)).run
@@ -20,17 +20,11 @@ class Terraspace::CLI
20
20
  Workspace.new(options.merge(mod: mod)).destroy
21
21
  end
22
22
 
23
- desc "setup STACK", "Setup workspace"
24
- long_desc Help.text("cloud:setup")
25
- def setup(mod)
26
- Workspace.new(options.merge(mod: mod)).setup
27
- end
28
-
29
- desc "sync [STACK]", "sync workspace"
23
+ desc "sync [STACK]", "Sync all or multiple workspaces."
30
24
  long_desc Help.text("cloud:sync")
31
25
  yes_option.call
32
- def sync(mod=nil)
33
- Syncer.new(options.merge(mod: mod, override_auto_sync: true)).run
26
+ def sync(*stacks)
27
+ Syncer.new(options.merge(stacks: stacks, override_auto_sync: true)).run
34
28
  end
35
29
 
36
30
  desc "runs SUBCOMMAND", "runs subcommands"
@@ -1,5 +1,3 @@
1
- require 'cli-format'
2
-
3
1
  class Terraspace::CLI::Cloud
4
2
  class Runs < Terraspace::Command
5
3
  Help = Terraspace::CLI::Help
@@ -0,0 +1,32 @@
1
+ ## Example
2
+
3
+ $ terraspace all down
4
+ Will run:
5
+ terraspace down a1 # batch 1
6
+ terraspace down b1 # batch 2
7
+ terraspace down b2 # batch 2
8
+ terraspace down c1 # batch 3
9
+ Are you sure? (y/N)
10
+
11
+ Once you confirm, Terraspace destroys the infrastructure.
12
+
13
+ Are you sure? (y/N) y
14
+ Batch Run 1:
15
+ Running: terraspace down a1 Logs: log/down/a1.log
16
+ terraspace down a1: Changes to Outputs:
17
+ terraspace down a1: Destroy complete! Resources: 2 destroyed.
18
+ Batch Run 2:
19
+ Running: terraspace down b1 Logs: log/down/b1.log
20
+ Running: terraspace down b2 Logs: log/down/b2.log
21
+ terraspace down b1: Changes to Outputs:
22
+ terraspace down b1: Destroy complete! Resources: 2 destroyed.
23
+ terraspace down b2: Changes to Outputs:
24
+ terraspace down b2: Destroy complete! Resources: 1 destroyed.
25
+ Batch Run 3:
26
+ Running: terraspace down c1 Logs: log/down/c1.log
27
+ terraspace down c1: Changes to Outputs:
28
+ terraspace down c1: Destroy complete! Resources: 1 destroyed.
29
+ Time took: 15s
30
+ $
31
+
32
+ Terraspace provides a reduced-noise summary of the runs. The full logs are also written for further inspection and debugging. The [terraspace log](https://terraspace.cloud/reference/terraspace-log/) command is useful for viewing the logs.
@@ -0,0 +1,21 @@
1
+ ## Example
2
+
3
+ $ terraspace all graph
4
+ Building graph...
5
+ Graph saved to .terraspace-cache/graph/dependencies-20200919192103.png
6
+ $
7
+
8
+ The graph will auto-open on macosx and cloud9.
9
+
10
+ ![](https://img.boltops.com/boltops/tools/terraspace/graphs/example-a1.png)
11
+
12
+ ## Text Form
13
+
14
+ You can also generate a graph in text, tree-like form
15
+
16
+ $ terraspace all graph --format text
17
+ a1
18
+ ├── b2
19
+ │ └── c1
20
+ └── b1
21
+ └── c1
@@ -0,0 +1,22 @@
1
+ ## Example
2
+
3
+ $ terraspace all output
4
+ Running:
5
+ terraspace output c1 # batch 1
6
+ terraspace output b1 # batch 2
7
+ terraspace output b2 # batch 2
8
+ terraspace output a1 # batch 3
9
+ Batch Run 1:
10
+ Running: terraspace output c1 Logs: log/output/c1.log
11
+ terraspace output c1: length = 1
12
+ Batch Run 2:
13
+ Running: terraspace output b1 Logs: log/output/b1.log
14
+ Running: terraspace output b2 Logs: log/output/b2.log
15
+ terraspace output b1: length = 1
16
+ terraspace output b1: length2 = 1
17
+ terraspace output b2: length = 1
18
+ Batch Run 3:
19
+ Running: terraspace output a1 Logs: log/output/a1.log
20
+ terraspace output a1: Warning: No outputs found
21
+ Time took: 12s
22
+ $