terradactyl-terraform 0.13.0 → 0.15.0

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: 4027e42749bc30e77a4601aae086542e62d4ed9c50913a480d7ff6bc7973c5a5
4
- data.tar.gz: d5ab49216b9e1e7bbf34b213026e6ef4c851c74f3c03ac830ab11fd62419f3af
3
+ metadata.gz: a4c248e4fe981818a665e02636456e0cd6e88049d0e0495fe1cc3e2487c933ff
4
+ data.tar.gz: 37c74ac64e91d4697f00776c3b3e5491f065d2ef008bf0b813785593131008dc
5
5
  SHA512:
6
- metadata.gz: 3ecd70785e909819604b60023ed3dc71eaecd3c852dbcd404b0e6d8c93d962c83256f8b9f57706dd6a9b1c3b3a2dbb95b7d994ca18da33a7db4276a6c62bc9b4
7
- data.tar.gz: 6183727083d3e6284574669732d01532b9b36fbadfc6fcea700b9a788c3e84875c9d035cc88dd6c8fc13c88bdfea36cd4b02da243dc47e30f5cd1f7936d8bbfa
6
+ metadata.gz: 340b3e0c1ddfa250c5f04dbc59c4fdc4d6a25077f1097d41a5ab1588fbaa3467a20dbb1232baed536cd4c2e8deba7873e5841f914a2a97af26b245af775f33b3
7
+ data.tar.gz: 98c08dcd41f886c6d43f8921a84795b555585b2b923f07ff438610060eb0785ae266cbec381dddb079c3a580680b644174c027ccec9d9574ee9e45bca283de44
@@ -7,6 +7,9 @@ on:
7
7
  paths:
8
8
  - lib/terradactyl/terraform/version.rb
9
9
 
10
+ # Using the Ruby teams https://github.com/ruby/setup-ruby, not the Github
11
+ # team's https://github.com/actions/setup-ruby
12
+
10
13
  jobs:
11
14
  release:
12
15
  env:
@@ -20,7 +23,7 @@ jobs:
20
23
  - name: Checkout Code
21
24
  uses: actions/checkout@v2
22
25
  - name: Setup Ruby
23
- uses: actions/setup-ruby@v1
26
+ uses: ruby/setup-ruby@v1
24
27
  with:
25
28
  ruby-version: '2.7'
26
29
  bundler-cache: true
@@ -39,7 +42,7 @@ jobs:
39
42
  with:
40
43
  tag_name: v${{ env.RELEASE_VERSION }}
41
44
  release_name: v${{ env.RELEASE_VERSION }}
42
- body: ${{ env.RELEASE_BODY }}
45
+ body_path: ${{ env.RELEASE_BODY_PATH }}
43
46
  draft: false
44
47
  prerelease: false
45
48
  - name: Upload Asset
@@ -0,0 +1,26 @@
1
+ name: Build Status
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+
8
+ # Using the Ruby teams https://github.com/ruby/setup-ruby, not the Github
9
+ # team's https://github.com/actions/setup-ruby
10
+
11
+ jobs:
12
+ validate:
13
+ runs-on: ubuntu-latest
14
+ steps:
15
+ - name: Git clone
16
+ uses: actions/checkout@v2
17
+ with:
18
+ fetch-depth: 2
19
+ - name: Setup Ruby
20
+ uses: ruby/setup-ruby@v1
21
+ with:
22
+ ruby-version: '2.7'
23
+ bundler-cache: true
24
+ - name: Run tests
25
+ id: test
26
+ run: bundle exec rake spec
@@ -5,6 +5,9 @@ on:
5
5
  paths:
6
6
  - '**.rb'
7
7
 
8
+ # Using the Ruby teams https://github.com/ruby/setup-ruby, not the Github
9
+ # team's https://github.com/actions/setup-ruby
10
+
8
11
  jobs:
9
12
  validate:
10
13
  runs-on: ubuntu-latest
@@ -14,15 +17,13 @@ jobs:
14
17
  with:
15
18
  fetch-depth: 2
16
19
  - name: Setup Ruby
17
- uses: actions/setup-ruby@v1
20
+ uses: ruby/setup-ruby@v1
18
21
  with:
19
22
  ruby-version: '2.7'
20
23
  bundler-cache: true
21
- - name: Bundle install
22
- run: |
23
- bundle config path vendor/bundle
24
- bundle install --jobs 4 --retry 3
25
24
  - name: Run lint
25
+ id: lint
26
26
  run: bundle exec rake lint
27
27
  - name: Run tests
28
+ id: test
28
29
  run: bundle exec rake spec
data/CHANGELOG.md CHANGED
@@ -1,5 +1,16 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 0.15.0 (2021-04-27)
4
+
5
+ NEW FEATURES:
6
+
7
+ * adds support for Terraform version `0.14.x`
8
+ * adds support for Terraform version `0.15.x`
9
+
10
+ BUG FIXES:
11
+
12
+ * fix broken version expression resolution
13
+
3
14
  ## 0.13.0 (2020-11-23)
4
15
 
5
16
  NEW FEATURES:
data/README.md CHANGED
@@ -1,12 +1,15 @@
1
1
  # Terradactyl::Terraform
2
2
 
3
- A collection of libraries for executing Terraform CLI operations, managing Terraform binary versions, and other related tasks.
3
+ [![Gem Version](https://badge.fury.io/rb/terradactyl-terraform.svg)](https://badge.fury.io/rb/terradactyl-terraform)
4
+ ![Build Status](https://github.com/vcilabs/terradactyl-terraform/workflows/Build%20Status/badge.svg)
5
+
6
+ Library for executing Terraform CLI operations, managing Terraform binary versions, and other related tasks.
4
7
 
5
8
  ## Requirements
6
9
 
7
10
  Requires Ruby 2.5 or greater.
8
11
 
9
- NOTE: While `VersionManager` can fetch & install ANY available version of Terraform, the Terraform sub-command operations are only supported between stable versions `~> 0.11.x` and `~> 0.13.x`.
12
+ NOTE: While `VersionManager` can fetch & install ANY available version of Terraform, the Terraform sub-command operations are only supported between stable versions `~> 0.11.x` and `~> 0.15.x`.
10
13
 
11
14
  ## Installation
12
15
 
@@ -32,7 +35,7 @@ If you wish to try out some features, launch a `pry` repl and poke around ...
32
35
 
33
36
  $ bundle exec pry -r 'terradactyl/terraform'
34
37
  [1] pry(main)> Terradactyl::Terraform::VERSION
35
- => "0.13.0"
38
+ => "0.15.0"
36
39
 
37
40
  ### Managing different Terraform versions
38
41
 
@@ -11,10 +11,3 @@ require_relative 'commands/destroy'
11
11
  require_relative 'commands/fmt'
12
12
  require_relative 'commands/show'
13
13
  require_relative 'commands/validate'
14
- require_relative 'commands/checklist'
15
-
16
- module Terradactyl
17
- module Terraform
18
- Rev013 = Rev012
19
- end
20
- end
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Terradactyl
4
4
  module Terraform
5
- module Rev011
5
+ module Subcommands
6
6
  module Apply
7
7
  def defaults
8
8
  {
@@ -31,12 +31,6 @@ module Terradactyl
31
31
  end
32
32
  end
33
33
 
34
- module Rev012
35
- module Apply
36
- include Rev011::Apply
37
- end
38
- end
39
-
40
34
  module Commands
41
35
  class Apply < Base
42
36
  end
@@ -8,15 +8,19 @@ module Terradactyl
8
8
  end
9
9
 
10
10
  def revisions
11
- contstants.select { |c| c =~ /Rev/ }.sort
11
+ constants.select { |c| c =~ /Rev/ }.sort
12
12
  end
13
13
 
14
14
  def select_revision(version, object)
15
15
  klass_name = object.class.name.split('::').last
16
- const_name = "#{revision(version)}::#{klass_name}"
16
+ revision = "#{revision(version)}::#{klass_name}"
17
17
  return if klass_name == 'Base'
18
18
 
19
- object.extend(Terradactyl::Terraform.const_get(const_name))
19
+ if Terradactyl::Terraform.const_defined?(revision)
20
+ object.extend(Terradactyl::Terraform.const_get(revision))
21
+ else
22
+ object.extend(Terradactyl::Terraform.const_get("Subcommands::#{klass_name}"))
23
+ end
20
24
  end
21
25
  end
22
26
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Terradactyl
4
4
  module Terraform
5
- module Rev011
5
+ module Subcommands
6
6
  module Destroy
7
7
  def defaults
8
8
  {
@@ -32,9 +32,21 @@ module Terradactyl
32
32
  end
33
33
  end
34
34
 
35
- module Rev012
35
+ module Rev015
36
36
  module Destroy
37
- include Rev011::Destroy
37
+ include Terradactyl::Terraform::Subcommands::Destroy
38
+
39
+ def defaults
40
+ super.reject { |k, _v| k == 'force' }
41
+ end
42
+
43
+ def switches
44
+ super.reject { |e| e == 'force' }
45
+ end
46
+
47
+ def arguments
48
+ super.reject { |k, _v| k == 'force' }
49
+ end
38
50
  end
39
51
  end
40
52
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Terradactyl
4
4
  module Terraform
5
- module Rev011
5
+ module Subcommands
6
6
  module Fmt
7
7
  def defaults
8
8
  {
@@ -19,12 +19,6 @@ module Terradactyl
19
19
  end
20
20
  end
21
21
 
22
- module Rev012
23
- module Fmt
24
- include Rev011::Fmt
25
- end
26
- end
27
-
28
22
  module Commands
29
23
  class Fmt < Base
30
24
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Terradactyl
4
4
  module Terraform
5
- module Rev011
5
+ module Subcommands
6
6
  module Init
7
7
  def defaults
8
8
  {
@@ -33,9 +33,17 @@ module Terradactyl
33
33
  end
34
34
  end
35
35
 
36
- module Rev012
36
+ module Rev015
37
37
  module Init
38
- include Rev011::Init
38
+ include Terradactyl::Terraform::Subcommands::Init
39
+
40
+ def defaults
41
+ super.reject { |k, _v| k == 'lock' }
42
+ end
43
+
44
+ def arguments
45
+ super.reject { |k, _v| k == 'lock' }
46
+ end
39
47
  end
40
48
  end
41
49
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Terradactyl
4
4
  module Terraform
5
- module Rev011
5
+ module Subcommands
6
6
  module Plan
7
7
  def defaults
8
8
  {
@@ -33,12 +33,6 @@ module Terradactyl
33
33
  end
34
34
  end
35
35
 
36
- module Rev012
37
- module Plan
38
- include Rev011::Plan
39
- end
40
- end
41
-
42
36
  module Commands
43
37
  class Plan < Base
44
38
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Terradactyl
4
4
  module Terraform
5
- module Rev011
5
+ module Subcommands
6
6
  module Refresh
7
7
  def defaults
8
8
  {
@@ -27,12 +27,6 @@ module Terradactyl
27
27
  end
28
28
  end
29
29
 
30
- module Rev012
31
- module Refresh
32
- include Rev011::Refresh
33
- end
34
- end
35
-
36
30
  module Commands
37
31
  class Refresh < Base
38
32
  end
@@ -2,35 +2,37 @@
2
2
 
3
3
  module Terradactyl
4
4
  module Terraform
5
- module Rev011
5
+ module Subcommands
6
6
  module Show
7
7
  def defaults
8
8
  {
9
- 'module-depth' => -1,
9
+ 'json' => false,
10
10
  'no-color' => false
11
11
  }
12
12
  end
13
13
 
14
14
  def switches
15
15
  %w[
16
+ json
16
17
  no-color
17
18
  ]
18
19
  end
19
20
  end
20
21
  end
21
22
 
22
- module Rev012
23
+ module Rev011
24
+ include Terradactyl::Terraform::Subcommands::Show
25
+
23
26
  module Show
24
27
  def defaults
25
28
  {
26
- 'json' => false,
29
+ 'module-depth' => -1,
27
30
  'no-color' => false
28
31
  }
29
32
  end
30
33
 
31
34
  def switches
32
35
  %w[
33
- json
34
36
  no-color
35
37
  ]
36
38
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Terradactyl
4
4
  module Terraform
5
- module Rev011
5
+ module Subcommands
6
6
  module Validate
7
7
  def defaults
8
8
  {
@@ -2,17 +2,11 @@
2
2
 
3
3
  module Terradactyl
4
4
  module Terraform
5
- module Rev011
5
+ module Subcommands
6
6
  module Version
7
7
  end
8
8
  end
9
9
 
10
- module Rev012
11
- module Version
12
- include Rev011::Version
13
- end
14
- end
15
-
16
10
  module Commands
17
11
  class Version < Base
18
12
  end
@@ -8,6 +8,8 @@ module Terradactyl
8
8
  class PlanFileParser
9
9
  attr_reader :plan_path
10
10
 
11
+ PLAN_FILE_SIGNATURE = 'Terraform will perform the following actions'
12
+
11
13
  def self.load(plan_path)
12
14
  new(plan_path)
13
15
  end
@@ -24,10 +26,19 @@ module Terradactyl
24
26
  @data ||= parse(@plan_path)
25
27
  end
26
28
 
29
+ def signature
30
+ self.class::PLAN_FILE_SIGNATURE
31
+ end
32
+
27
33
  private
28
34
 
35
+ # rubocop:disable Metrics/AbcSize
29
36
  def parse(plan_path)
30
- captured = Commands::Show.execute(dir_or_plan: plan_path,
37
+ file_name = File.basename(plan_path)
38
+ stack_name = File.dirname(plan_path)
39
+ pushd(stack_name)
40
+
41
+ captured = Commands::Show.execute(dir_or_plan: file_name,
31
42
  options: options,
32
43
  capture: true)
33
44
 
@@ -40,7 +51,7 @@ module Terradactyl
40
51
  parsed = JSON.parse(captured.stdout)
41
52
 
42
53
  # The the `prior_state` node in the JSON returned from the
43
- # planfile is not assembled consitently and therefore, never obeys
54
+ # planfile is not assembled consistently and therefore, never obeys
44
55
  # any sort order. It does not appear to be of any consequence when
45
56
  # calculating a checksum for the plan, so we excise it in an effort
46
57
  # to conform the data. This is sub-optimal, but presently necessary.
@@ -48,7 +59,10 @@ module Terradactyl
48
59
  # brian.warsing@visioncritical.com (2020-06-18)
49
60
 
50
61
  parsed.reject { |k| k == 'prior_state' }.to_json
62
+ ensure
63
+ popd
51
64
  end
65
+ # rubocop:enable Metrics/AbcSize
52
66
 
53
67
  def options
54
68
  Commands::Options.new do |opts|
@@ -57,6 +71,30 @@ module Terradactyl
57
71
  opts.json = true
58
72
  end
59
73
  end
74
+
75
+ def pushd(path)
76
+ @working_dir_last = Dir.pwd
77
+ Dir.chdir(path)
78
+ end
79
+
80
+ def popd
81
+ Dir.chdir(@working_dir_last)
82
+ end
83
+ end
84
+ end
85
+
86
+ module Rev013
87
+ class PlanFileParser < Rev012::PlanFileParser
88
+ end
89
+ end
90
+
91
+ module Rev014
92
+ class PlanFileParser < Rev012::PlanFileParser
93
+ end
94
+ end
95
+
96
+ module Rev015
97
+ class PlanFileParser < Rev012::PlanFileParser
60
98
  end
61
99
  end
62
100
 
@@ -120,20 +158,18 @@ module Terradactyl
120
158
  end
121
159
  # rubocop:enable Security/MarshalLoad
122
160
 
123
- attr_reader :data, :checksum, :file_name, :stack_name
124
- attr_writer :plan_output
161
+ attr_reader :data, :checksum, :file_name, :stack_name, :parser
162
+ attr_writer :plan_output, :error_output
125
163
  attr_accessor :base_folder
126
164
 
127
165
  WARN_NO_PLAN_OUTPUT = 'WARN: no plan output is available'
128
166
 
129
167
  def initialize(plan_path:, parser:)
130
168
  @plan_path = plan_path.to_s
131
- @parser = parser
132
169
  @file_name = File.basename(@plan_path)
133
170
  @stack_name = File.basename(@plan_path, '.tfout')
134
171
  @base_folder = File.dirname(@plan_path).split('/')[-2]
135
-
136
- parse(@plan_path)
172
+ @parser = parse(parser, @plan_path)
137
173
  end
138
174
 
139
175
  def save(artifact_path: artifact)
@@ -150,7 +186,11 @@ module Terradactyl
150
186
  end
151
187
 
152
188
  def plan_output
153
- format_output(@plan_output)
189
+ format_plan_output(@plan_output)
190
+ end
191
+
192
+ def error_output
193
+ format_error_output(@error_output)
154
194
  end
155
195
 
156
196
  def to_markdown
@@ -172,8 +212,8 @@ module Terradactyl
172
212
 
173
213
  private
174
214
 
175
- def parse(plan_path)
176
- @parser.load(plan_path).tap do |dat|
215
+ def parse(parser, plan_path)
216
+ parser.load(plan_path).tap do |dat|
177
217
  @data = dat.data
178
218
  @checksum = dat.checksum
179
219
  end
@@ -186,17 +226,18 @@ module Terradactyl
186
226
  'terradactyl.planfile.data')
187
227
  end
188
228
 
189
- def format_output(string)
229
+ def format_error_output(string)
230
+ string.strip
231
+ end
232
+
233
+ def format_plan_output(string)
190
234
  return WARN_NO_PLAN_OUTPUT unless string
191
235
 
192
- delimit = '-' * 72
236
+ # These hypens are different!
237
+ delimit = /(?:─|-){72,77}/
193
238
  content = string.split(delimit).compact.reject(&:empty?)
194
239
 
195
- if content.size == 2
196
- content.last.strip
197
- else
198
- content[content.size / 3].strip
199
- end
240
+ content.select { |e| e =~ /#{parser.signature}/ }.first.strip
200
241
  end
201
242
  end
202
243
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Terradactyl
4
4
  module Terraform
5
- VERSION = '0.13.0'
5
+ VERSION = '0.15.0'
6
6
  end
7
7
  end
@@ -8,6 +8,7 @@ require_relative 'version_manager/binary'
8
8
 
9
9
  module Terradactyl
10
10
  module Terraform
11
+ # rubocop:disable Metrics/ModuleLength
11
12
  module VersionManager
12
13
  class VersionManagerError < RuntimeError
13
14
  def initialize(msg)
@@ -17,8 +18,10 @@ module Terradactyl
17
18
 
18
19
  ERROR_MISSING = 'Terraform not installed'
19
20
  ERROR_INVALID_VERSION_STRING = 'Invalid version string'
21
+ ERROR_UNRESOLVABLE_VERSION = 'Unresolvable version string'
22
+ ERROR_UNPARSEABLE_VERSION = 'Unparsable version string'
20
23
  SEMVER_EXP_RE = /
21
- ^\s*((?<op>(<=|>=|>|<|~>))\s+)?
24
+ ^\s*((?<op>(=|<=|>=|>|<|~>))\s+)?
22
25
  (?<semver>\d+(\.\d+)?(\.\d+)?(-\w+)?)
23
26
  /x.freeze
24
27
 
@@ -78,12 +81,8 @@ module Terradactyl
78
81
  end
79
82
 
80
83
  def resolve(expression)
81
- data = expression.to_s.match(SEMVER_EXP_RE) || {}
82
- op = data['op']
83
- semver = data['semver']
84
-
85
- unless (resolution = resolve_expression(op, semver))
86
- raise VersionManagerError, ERROR_INVALID_VERSION_STRING
84
+ unless (resolution = resolve_expression(expression.to_s.strip))
85
+ raise VersionManagerError, ERROR_UNRESOLVABLE_VERSION
87
86
  end
88
87
 
89
88
  resolution
@@ -91,19 +90,65 @@ module Terradactyl
91
90
 
92
91
  private
93
92
 
94
- def resolve_expression(op, semver)
95
- case op
96
- when /~>/
97
- min = semver
98
- max = pessimistic_max(semver)
99
- versions(local: false).select { |v| (v >= min && v < max) }.last
100
- when />=|>|<=|</
101
- versions(local: false).select { |v| v.send(op.to_sym, semver) }.last
93
+ def resolve_expression(expression)
94
+ candiates = case expression
95
+ when /^~>/
96
+ resolve_pessimistic(expression)
97
+ when /^(?:>=|>|<=|<)/
98
+ resolve_range(expression)
99
+ when /^(?:=\s+)?\d+\.\d+\.\d+(?:-.*)?/
100
+ return resolve_equality(expression)
101
+ else
102
+ raise VersionManagerError, ERROR_INVALID_VERSION_STRING
103
+ end
104
+
105
+ candiates.reject { |v| v =~ /-/ }.last
106
+ end
107
+
108
+ def resolve_equality(expression)
109
+ expression.split(/\s+/).last
110
+ end
111
+
112
+ # rubocop:disable Metrics/AbcSize
113
+ def resolve_range(expression)
114
+ left, right = expression.split(/\s*,\s*/)
115
+ l_op, l_semver = parse_expression(left).captures
116
+
117
+ if right
118
+ r_op, r_semver = parse_expression(right).captures
102
119
  else
103
- versions(local: false).delete(semver)
120
+ r_op = l_op
121
+ r_semver = l_semver
122
+ end
123
+
124
+ l_gemver = Gem::Version.new(l_semver)
125
+ r_gemver = Gem::Version.new(r_semver)
126
+
127
+ versions(local: false).select do |v|
128
+ v = Gem::Version.new(v)
129
+ (v.send(l_op.to_sym, l_gemver) && v.send(r_op.to_sym, r_gemver))
130
+ end
131
+ end
132
+ # rubocop:enable Metrics/AbcSize
133
+
134
+ def resolve_pessimistic(expression)
135
+ semver = parse_expression(expression).captures.last
136
+ min = Gem::Version.new(semver)
137
+ max = Gem::Version.new(pessimistic_max(semver))
138
+
139
+ versions(local: false).select do |v|
140
+ v = Gem::Version.new(v)
141
+ (v >= min && v < max)
104
142
  end
105
143
  end
106
144
 
145
+ def parse_expression(expression)
146
+ match = expression.to_s.match(SEMVER_EXP_RE)
147
+ raise VersionManagerError, ERROR_UNPARSEABLE_VERSION unless match
148
+
149
+ match
150
+ end
151
+
107
152
  def remote_versions
108
153
  fh = Downloader.fetch(releases_url)
109
154
  re = /terraform_(?<version>\d+\.\d+\.\d+(-\w+)?)/
@@ -127,5 +172,6 @@ module Terradactyl
127
172
  end
128
173
  end
129
174
  end
175
+ # rubocop:enable Metrics/ModuleLength
130
176
  end
131
177
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: terradactyl-terraform
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.0
4
+ version: 0.15.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian Warsing
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-11-24 00:00:00.000000000 Z
11
+ date: 2021-04-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubyzip
@@ -146,6 +146,7 @@ extensions: []
146
146
  extra_rdoc_files: []
147
147
  files:
148
148
  - ".github/workflows/build-and-release.yml"
149
+ - ".github/workflows/build-status.yml"
149
150
  - ".github/workflows/validate-pullrequest.yml"
150
151
  - ".gitignore"
151
152
  - ".rubocop.yml"
@@ -158,7 +159,6 @@ files:
158
159
  - lib/terradactyl/terraform/commands.rb
159
160
  - lib/terradactyl/terraform/commands/apply.rb
160
161
  - lib/terradactyl/terraform/commands/base.rb
161
- - lib/terradactyl/terraform/commands/checklist.rb
162
162
  - lib/terradactyl/terraform/commands/destroy.rb
163
163
  - lib/terradactyl/terraform/commands/fmt.rb
164
164
  - lib/terradactyl/terraform/commands/init.rb
@@ -196,7 +196,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
196
196
  - !ruby/object:Gem::Version
197
197
  version: '0'
198
198
  requirements: []
199
- rubygems_version: 3.1.4
199
+ rubygems_version: 3.1.6
200
200
  signing_key:
201
201
  specification_version: 4
202
202
  summary: Core functionality for managing a Terraform repo
@@ -1,32 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Terradactyl
4
- module Terraform
5
- module Rev011
6
- module Checklist
7
- def defaults
8
- {}
9
- end
10
-
11
- def switches
12
- []
13
- end
14
-
15
- def subcmd
16
- '0.12checklist'
17
- end
18
- end
19
- end
20
-
21
- module Rev012
22
- module Checklist
23
- include Rev011::Checklist
24
- end
25
- end
26
-
27
- module Commands
28
- class Checklist < Base
29
- end
30
- end
31
- end
32
- end