stackup 0.9.3 → 0.9.4

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
  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