stackup 0.9.3 → 0.9.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: bd4c6df93d7764ed0219483cd60c0aa5c08a4179
4
- data.tar.gz: 007f8800aa2f70426fde0d66ec449416f5b5c809
3
+ metadata.gz: 0417b69fa907567e0d594b25e7284aa932bcf99d
4
+ data.tar.gz: 88e68a2f9db98a05d06fb79c92a8ddf2120b314f
5
5
  SHA512:
6
- metadata.gz: c7cedaf786303aeb459eff38b0ef5fa3df2b3801f702452ff9dd5102cc276fa4cd041949b5ae06e807a802631beb8d3a13a5d485c828bf62fbc0a32f132c7ea3
7
- data.tar.gz: d8e192013ccdd968b4ec4a6153237282d9abf4e4ee00bb7bc3d8902841529b64a9f479f2c2414eb612c82cf610ec0a2982151033db334da27484139f73434317
6
+ metadata.gz: 7296e7ccd88e3e4b46ed560e48323ed19fddc64bcc47210ae5a7ca2c4553a30f6cac3bc5dae5dbe13ebc2ad64fd195949a8848e5517f1863773b123d5923c4d6
7
+ data.tar.gz: f6d1e3ec94f38f358897c4f23b21d808860202adee83717b79cfaee3be42dcad6c1f1c47dd133f30d002fb5d61fc36199ad59dbc0f4eb1e7e09bb6b06f39fe0b
data/CHANGES.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## 0.9.4 (2016-09-03)
2
+
3
+ * Support multiple parameters files.
4
+
1
5
  ## 0.9.3 (2016-08-21)
2
6
 
3
7
  * Specify CAPABILITY_NAMED_IAM by default, allowing creation of named IAM roles.
data/bin/stackup CHANGED
@@ -105,6 +105,10 @@ Clamp do
105
105
  signal_error "no such file: #{file.inspect}"
106
106
  end
107
107
 
108
+ def load_parameters(file)
109
+ Stackup::Parameters.new(load_data(file)).to_hash
110
+ end
111
+
108
112
  subcommand "status", "Print stack status." do
109
113
 
110
114
  def execute
@@ -121,10 +125,11 @@ Clamp do
121
125
  option ["-T", "--use-previous-template"], :flag,
122
126
  "reuse the existing template"
123
127
 
124
- option ["-p", "--parameters"], "FILE", "parameters file",
125
- :attribute_name => :parameters_file
128
+ option ["-p", "--parameters"], "FILE", "parameters file (last wins)",
129
+ :multivalued => true,
130
+ :attribute_name => :parameter_file_list
126
131
 
127
- option ["-o", "--override"], "PARAM=VALUE", "parameters overrides",
132
+ option ["-o", "--override"], "PARAM=VALUE", "parameter overrides",
128
133
  :multivalued => true,
129
134
  :attribute_name => :override_list
130
135
 
@@ -157,12 +162,9 @@ Clamp do
157
162
  private
158
163
 
159
164
  def parameters
160
- parameters_from_file.merge(parameter_overrides)
161
- end
162
-
163
- def parameters_from_file
164
- return {} unless parameters_file
165
- Stackup::Parameters.new(load_data(parameters_file)).to_hash
165
+ hashes = parameter_file_list.map(&method(:load_parameters))
166
+ hashes << parameter_overrides
167
+ hashes.inject(:merge)
166
168
  end
167
169
 
168
170
  def parameter_overrides
@@ -181,8 +183,9 @@ Clamp do
181
183
  option ["-t", "--template"], "FILE", "template file",
182
184
  :attribute_name => :template_file
183
185
 
184
- option ["-p", "--parameters"], "FILE", "parameters file",
185
- :attribute_name => :parameters_file
186
+ option ["-p", "--parameters"], "FILE", "parameters file (last wins)",
187
+ :multivalued => true,
188
+ :attribute_name => :parameter_file_list
186
189
 
187
190
  option "--tags", "FILE", "stack tags file",
188
191
  :attribute_name => :tags_file
@@ -196,7 +199,7 @@ Clamp do
196
199
  current["Template"] = stack.template
197
200
  planned["Template"] = load_data(template_file)
198
201
  end
199
- if parameters_file
202
+ unless parameter_file_list.empty?
200
203
  current["Parameters"] = existing_parameters.sort.to_h
201
204
  planned["Parameters"] = new_parameters.sort.to_h
202
205
  end
@@ -218,11 +221,12 @@ Clamp do
218
221
  @existing_parameters ||= stack.parameters
219
222
  end
220
223
 
224
+ def parameters_from_files
225
+ parameter_file_list.map(&method(:load_parameters)).inject(:merge)
226
+ end
227
+
221
228
  def new_parameters
222
- result = load_data(parameters_file)
223
- result = Stackup::Parameters.new(result).to_hash
224
- result = existing_parameters.merge(result)
225
- result.sort
229
+ existing_parameters.merge(parameters_from_files)
226
230
  end
227
231
 
228
232
  end
@@ -1,5 +1,5 @@
1
1
  module Stackup
2
2
 
3
- VERSION = "0.9.3"
3
+ VERSION = "0.9.4"
4
4
 
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stackup
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.3
4
+ version: 0.9.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Williams
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-08-21 00:00:00.000000000 Z
12
+ date: 2016-09-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: aws-sdk-resources
@@ -129,7 +129,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
129
129
  version: '0'
130
130
  requirements: []
131
131
  rubyforge_project:
132
- rubygems_version: 2.5.1
132
+ rubygems_version: 2.6.6
133
133
  signing_key:
134
134
  specification_version: 4
135
135
  summary: Manage CloudFormation stacks