packer-config 0.0.3 → 0.0.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 +4 -4
- data/.rubocop.yml +7 -7
- data/.travis.yml +1 -2
- data/README.md +30 -4
- data/RELEASENOTES.md +6 -0
- data/Rakefile +2 -2
- data/TODO.md +0 -1
- data/lib/packer-config.rb +19 -19
- data/lib/packer/builder.rb +1 -2
- data/lib/packer/builders/amazon.rb +1 -2
- data/lib/packer/dataobject.rb +2 -3
- data/lib/packer/postprocessor.rb +1 -2
- data/lib/packer/provisioner.rb +1 -2
- data/lib/packer/runner.rb +44 -0
- data/packer-config.gemspec +1 -1
- data/spec/packer/dataobject_spec.rb +2 -3
- data/spec/packer/provisioners/shell_spec.rb +3 -3
- data/spec/packer/runner_spec.rb +32 -0
- data/spec/packer_config_spec.rb +4 -8
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e45c5e454faed8c47d2303a5b62ccf57ab41ce80
|
4
|
+
data.tar.gz: 9bf6e3f2cdbbb446c7fad85caaaefe4be976a4a4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b4f75659bb9f8847b8952320d22032e51727b5fca6adb7df66c864034c6aa4ac271da2d7b2e5ac1eedaf58d27bf7d2a0871ebe16575ab01d36e2302f5bf5fd5e
|
7
|
+
data.tar.gz: 7bb2f90741d18c236262e9586c591e9c016b036ac572f0f67c782f9f79a371eef287903dea5f8d53ba69d2d5f5a8f1b1da602b1e0af31f450befad34b4e28185
|
data/.rubocop.yml
CHANGED
@@ -178,7 +178,7 @@ Style/AlignHash:
|
|
178
178
|
Style/AlignParameters:
|
179
179
|
Enabled: false
|
180
180
|
|
181
|
-
|
181
|
+
Metrics/BlockNesting:
|
182
182
|
Enabled: false
|
183
183
|
|
184
184
|
Style/BracesAroundHashParameters:
|
@@ -214,9 +214,6 @@ Style/EmptyLines:
|
|
214
214
|
Style/EmptyLinesAroundAccessModifier:
|
215
215
|
Enabled: false
|
216
216
|
|
217
|
-
Style/EmptyLinesAroundBody:
|
218
|
-
Enabled: false
|
219
|
-
|
220
217
|
Style/GuardClause:
|
221
218
|
Enabled: false
|
222
219
|
|
@@ -304,14 +301,17 @@ Style/Next:
|
|
304
301
|
Style/NumericLiterals:
|
305
302
|
Enabled: false
|
306
303
|
|
307
|
-
|
304
|
+
Metrics/ParameterLists:
|
308
305
|
Enabled: false
|
309
306
|
|
310
307
|
Style/TrailingComma:
|
311
308
|
# EnforcedStyleForMultiline: comma
|
312
309
|
Enabled: false
|
313
310
|
|
314
|
-
|
311
|
+
Metrics/CyclomaticComplexity:
|
312
|
+
Enabled: false
|
313
|
+
|
314
|
+
Metrics/AbcSize:
|
315
315
|
Enabled: false
|
316
316
|
|
317
317
|
####
|
@@ -337,4 +337,4 @@ UselessAssignment:
|
|
337
337
|
Enabled: false
|
338
338
|
|
339
339
|
WordArray:
|
340
|
-
Enabled: false
|
340
|
+
Enabled: false
|
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -15,6 +15,32 @@ Bonus: you can really go to town with templates when it's all done it Ruby.
|
|
15
15
|
|
16
16
|
gem install packer-config
|
17
17
|
|
18
|
+
## Use
|
19
|
+
|
20
|
+
### Builders
|
21
|
+
|
22
|
+
The following [Packer builders](http://www.packer.io/docs/templates/builders.html) are currently implemented:
|
23
|
+
|
24
|
+
* [amazon-ebs](http://www.packer.io/docs/builders/amazon-ebs.html)
|
25
|
+
* [amazon-instance](http://www.packer.io/docs/builders/amazon-instance.html)
|
26
|
+
* [docker](http://www.packer.io/docs/builders/docker.html)
|
27
|
+
* [virtualbox-iso](http://www.packer.io/docs/builders/virtualbox-iso.html)
|
28
|
+
|
29
|
+
### Provisioners
|
30
|
+
|
31
|
+
The following [Packer provisioners](http://www.packer.io/docs/templates/provisioners.html) are currently implemented:
|
32
|
+
|
33
|
+
* [file](http://www.packer.io/docs/provisioners/file.html)
|
34
|
+
* [shell](http://www.packer.io/docs/provisioners/shell.html)
|
35
|
+
|
36
|
+
### Post-Processors
|
37
|
+
|
38
|
+
The following [Packer post-processors](http://www.packer.io/docs/templates/post-processors.html) are currently implemented:
|
39
|
+
|
40
|
+
* [docker-import](http://www.packer.io/docs/post-processors/docker-import.html)
|
41
|
+
* [docker-push](http://www.packer.io/docs/post-processors/docker-push.html)
|
42
|
+
* [vagrant](http://www.packer.io/docs/post-processors/vagrant.html)
|
43
|
+
|
18
44
|
## Examples
|
19
45
|
|
20
46
|
### Packing a Vagrant Basebox from a CentOS ISO Using VirtualBox
|
@@ -29,7 +55,7 @@ This example is based on the integration test [spec/integration/centos_vagrant_s
|
|
29
55
|
pconfig.add_variable 'my_version', '0.0.1'
|
30
56
|
pconfig.add_variable 'chef_version', 'latest'
|
31
57
|
|
32
|
-
builder = pconfig.add_builder
|
58
|
+
builder = pconfig.add_builder 'virtualbox-iso'
|
33
59
|
builder.boot_command ["<tab> text ks=http://#{pconfig.macro.HTTPIP}:#{pconfig.macro.HTTPPort}/#{OS}-ks.cfg<enter><wait>"]
|
34
60
|
builder.boot_wait '10s'
|
35
61
|
builder.disk_size 40960
|
@@ -62,11 +88,11 @@ This example is based on the integration test [spec/integration/centos_vagrant_s
|
|
62
88
|
builder.virtualbox_version_file ".vbox_version"
|
63
89
|
builder.vm_name "packer-#{OS}-x86_64"
|
64
90
|
|
65
|
-
provisioner = pconfig.add_provisioner
|
91
|
+
provisioner = pconfig.add_provisioner 'file'
|
66
92
|
provisioner.source 'scripts/hello.sh'
|
67
93
|
provisioner.destination '/home/vagrant/hello.sh'
|
68
94
|
|
69
|
-
provisioner = pconfig.add_provisioner
|
95
|
+
provisioner = pconfig.add_provisioner 'shell'
|
70
96
|
provisioner.scripts [
|
71
97
|
'scripts/fix-slow-dns.sh',
|
72
98
|
'scripts/sshd.sh',
|
@@ -82,7 +108,7 @@ This example is based on the integration test [spec/integration/centos_vagrant_s
|
|
82
108
|
]
|
83
109
|
provisioner.execute_command "echo 'vagrant' | #{pconfig.macro.Vars} sudo -S -E bash '#{pconfig.macro.Path}'"
|
84
110
|
|
85
|
-
postprocessor = pconfig.add_postprocessor
|
111
|
+
postprocessor = pconfig.add_postprocessor 'vagrant'
|
86
112
|
postprocessor.output File.join('builds', pconfig.macro.Provider, "#{OS}-x86_64-#{pconfig.variable 'my_version'}.box")
|
87
113
|
|
88
114
|
pconfig.validate
|
data/RELEASENOTES.md
ADDED
@@ -0,0 +1,6 @@
|
|
1
|
+
# packer-config Release Notes
|
2
|
+
|
3
|
+
## 0.0.4
|
4
|
+
|
5
|
+
* Added the ability to call `#build` with a quiet option. This option turns streaming to stdout off/on. With `quiet: false`, you will see the output of the Packer call on your screen while `#build` is executing it. This can be handy for view Packer status for long running Packer jobs.
|
6
|
+
* Started writing release notes!
|
data/Rakefile
CHANGED
@@ -21,7 +21,7 @@ RuboCop::RakeTask.new(:lint)
|
|
21
21
|
|
22
22
|
task :default => [:lint, 'test:spec']
|
23
23
|
|
24
|
-
task :build => ['test:spec'] do
|
24
|
+
task :build => [:lint, 'test:spec', :clean] do
|
25
25
|
`gem build packer-config.gemspec`
|
26
26
|
end
|
27
27
|
|
@@ -44,4 +44,4 @@ task :clean do
|
|
44
44
|
Dir.glob('spec/integration/builds/*').select {|f| File.directory? f}.each do |d|
|
45
45
|
FileUtils.rm_rf(d)
|
46
46
|
end
|
47
|
-
end
|
47
|
+
end
|
data/TODO.md
CHANGED
@@ -5,4 +5,3 @@
|
|
5
5
|
* Look in to something like VCR to drive the tests of the child classes -- there's a lot of repetitive testing that could be done on them.
|
6
6
|
* Add missing builders, provisioners and post-processors. I only implemented the builders, provisioners and post-processors that I'm currently using.
|
7
7
|
* Refactor the child classes. I get the feeling that these could be implemented in some better, templated, type of way
|
8
|
-
* Building can take a long time. Look in to a way to query the state of a build. Maybe return the stdout from it on query.
|
data/lib/packer-config.rb
CHANGED
@@ -13,7 +13,7 @@
|
|
13
13
|
# See the License for the specific language governing permissions and
|
14
14
|
# limitations under the License.
|
15
15
|
require 'json'
|
16
|
-
require '
|
16
|
+
require 'packer/runner'
|
17
17
|
require 'packer/dataobject'
|
18
18
|
require 'packer/builder'
|
19
19
|
require 'packer/provisioner'
|
@@ -23,7 +23,6 @@ require 'packer/envvar'
|
|
23
23
|
|
24
24
|
module Packer
|
25
25
|
class Config < Packer::DataObject
|
26
|
-
|
27
26
|
VERSION = '0.0.2'
|
28
27
|
|
29
28
|
attr_accessor :builders
|
@@ -53,22 +52,20 @@ module Packer
|
|
53
52
|
if self.builders.length == 0
|
54
53
|
raise DataValidationError.new("At least one builder is required")
|
55
54
|
end
|
56
|
-
self.builders.each
|
57
|
-
|
58
|
-
|
59
|
-
self.provisioners.each do |thing|
|
60
|
-
thing.validate
|
61
|
-
end
|
62
|
-
self.postprocessors.each do |thing|
|
63
|
-
thing.validate
|
64
|
-
end
|
55
|
+
self.builders.each(&:validate)
|
56
|
+
self.provisioners.each(&:validate)
|
57
|
+
self.postprocessors.each(&:validate)
|
65
58
|
self.write
|
59
|
+
stdout = nil
|
66
60
|
Dir.chdir(File.dirname(self.output_file)) do
|
67
|
-
|
68
|
-
|
69
|
-
|
61
|
+
begin
|
62
|
+
stdout = Packer::Runner.run! self.packer, 'validate', File.basename(self.output_file), quiet: true
|
63
|
+
rescue Packer::Runner::CommandExecutionError => e
|
64
|
+
raise PackerBuildError.new(e.to_s)
|
65
|
+
end
|
70
66
|
end
|
71
67
|
self.delete
|
68
|
+
stdout
|
72
69
|
end
|
73
70
|
|
74
71
|
class DumpError < StandardError
|
@@ -115,15 +112,19 @@ module Packer
|
|
115
112
|
class PackerBuildError < StandardError
|
116
113
|
end
|
117
114
|
|
118
|
-
def build
|
115
|
+
def build(quiet: false)
|
119
116
|
self.validate
|
120
117
|
self.write
|
118
|
+
stdout = nil
|
121
119
|
Dir.chdir(File.dirname(self.output_file)) do
|
122
|
-
|
123
|
-
|
124
|
-
|
120
|
+
begin
|
121
|
+
stdout = Packer::Runner.run! self.packer, 'build', self.packer_options, File.basename(self.output_file), quiet: quiet
|
122
|
+
rescue Packer::Runner::CommandExecutionError => e
|
123
|
+
raise PackerBuildError.new(e.to_s)
|
124
|
+
end
|
125
125
|
end
|
126
126
|
self.delete
|
127
|
+
stdout
|
127
128
|
end
|
128
129
|
|
129
130
|
def description(description)
|
@@ -176,6 +177,5 @@ module Packer
|
|
176
177
|
attr_writer :output_file
|
177
178
|
attr_writer :macro
|
178
179
|
attr_writer :envvar
|
179
|
-
|
180
180
|
end
|
181
181
|
end
|
data/lib/packer/builder.rb
CHANGED
@@ -16,7 +16,6 @@ require 'packer/builders/all'
|
|
16
16
|
|
17
17
|
module Packer
|
18
18
|
class Builder < DataObject
|
19
|
-
|
20
19
|
AMAZON_EBS = 'amazon-ebs'
|
21
20
|
AMAZON_INSTANCE = 'amazon-instance'
|
22
21
|
DOCKER = 'docker'
|
@@ -62,4 +61,4 @@ module Packer
|
|
62
61
|
VALID_BUILDER_TYPES.include? type
|
63
62
|
end
|
64
63
|
end
|
65
|
-
end
|
64
|
+
end
|
data/lib/packer/dataobject.rb
CHANGED
@@ -15,7 +15,6 @@
|
|
15
15
|
|
16
16
|
module Packer
|
17
17
|
class DataObject
|
18
|
-
|
19
18
|
attr_accessor :data
|
20
19
|
attr_accessor :required
|
21
20
|
|
@@ -71,7 +70,7 @@ module Packer
|
|
71
70
|
def __add_array_of_strings(key, values, exclusives = [])
|
72
71
|
self.__exclusive_key_error(key, exclusives)
|
73
72
|
raise TypeError.new() unless Array.try_convert(values)
|
74
|
-
self.data[key.to_s] = values.to_ary.map
|
73
|
+
self.data[key.to_s] = values.to_ary.map(&:to_s)
|
75
74
|
end
|
76
75
|
|
77
76
|
def __add_array_of_array_of_strings(key, values, exclusives = [])
|
@@ -80,7 +79,7 @@ module Packer
|
|
80
79
|
self.data[key.to_s] = []
|
81
80
|
values.each do |v|
|
82
81
|
raise TypeError.new() unless Array.try_convert(v)
|
83
|
-
self.data[key.to_s].push(v.to_ary.map
|
82
|
+
self.data[key.to_s].push(v.to_ary.map(&:to_s))
|
84
83
|
end
|
85
84
|
end
|
86
85
|
|
data/lib/packer/postprocessor.rb
CHANGED
@@ -17,7 +17,6 @@ require 'packer/dataobject'
|
|
17
17
|
|
18
18
|
module Packer
|
19
19
|
class PostProcessor < Packer::DataObject
|
20
|
-
|
21
20
|
DOCKER_IMPORT = 'docker-import'
|
22
21
|
DOCKER_PUSH = 'docker-push'
|
23
22
|
VAGRANT = 'vagrant'
|
@@ -74,4 +73,4 @@ module Packer
|
|
74
73
|
VALID_POST_PROCESSOR_TYPES.include? type
|
75
74
|
end
|
76
75
|
end
|
77
|
-
end
|
76
|
+
end
|
data/lib/packer/provisioner.rb
CHANGED
@@ -0,0 +1,44 @@
|
|
1
|
+
require 'open3'
|
2
|
+
require 'shellwords'
|
3
|
+
require 'pty'
|
4
|
+
|
5
|
+
module Packer
|
6
|
+
class Runner
|
7
|
+
class CommandExecutionError < StandardError
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.run!(*args, quiet: false)
|
11
|
+
cmd = Shellwords.shelljoin(args.flatten)
|
12
|
+
status = 0
|
13
|
+
stdout = ''
|
14
|
+
stderr = ''
|
15
|
+
if quiet
|
16
|
+
# Run without streaming std* to any screen
|
17
|
+
stdout, stderr, status = Open3.capture3(cmd)
|
18
|
+
else
|
19
|
+
# Run but stream as well as capture stdout to the screen
|
20
|
+
status = pty(cmd) do |r,w,pid|
|
21
|
+
while !r.eof?
|
22
|
+
c = r.getc
|
23
|
+
stdout << c
|
24
|
+
$stdout.write "#{c}"
|
25
|
+
end
|
26
|
+
Process.wait(pid)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
raise CommandExecutionError.new(stderr) unless status == 0
|
30
|
+
stdout
|
31
|
+
end
|
32
|
+
|
33
|
+
def self.exec!(*args)
|
34
|
+
cmd = Shellwords.shelljoin(args.flatten)
|
35
|
+
logger.debug "Exec'ing: #{cmd}, in: #{Dir.pwd}"
|
36
|
+
Kernel.exec cmd
|
37
|
+
end
|
38
|
+
|
39
|
+
def self.pty(cmd, &block)
|
40
|
+
PTY.spawn(cmd, &block)
|
41
|
+
$?.exitstatus
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
data/packer-config.gemspec
CHANGED
@@ -15,7 +15,7 @@
|
|
15
15
|
|
16
16
|
Gem::Specification.new do |spec|
|
17
17
|
spec.name = "packer-config"
|
18
|
-
spec.version = "0.0.
|
18
|
+
spec.version = "0.0.4"
|
19
19
|
# For deploying alpha versions via Travis CI
|
20
20
|
spec.version = "#{spec.version}-alpha-#{ENV['TRAVIS_BUILD_NUMBER']}" if ENV['TRAVIS']
|
21
21
|
spec.authors = ["Ian Chesal"]
|
@@ -121,7 +121,7 @@ RSpec.describe Packer::DataObject do
|
|
121
121
|
|
122
122
|
it 'converts an array of non-strings to strings and assigns them to key' do
|
123
123
|
dataobject.__add_array_of_strings('key', some_array_of_ints)
|
124
|
-
expect(dataobject.data['key']).to eq(some_array_of_ints.map
|
124
|
+
expect(dataobject.data['key']).to eq(some_array_of_ints.map(&:to_s))
|
125
125
|
dataobject.data.delete('key')
|
126
126
|
end
|
127
127
|
|
@@ -235,5 +235,4 @@ RSpec.describe Packer::DataObject do
|
|
235
235
|
expect { dataobject.__add_array_of_hashes('key', [some_hash_of_strings, 'illegal']) }.to raise_error
|
236
236
|
end
|
237
237
|
end
|
238
|
-
|
239
|
-
end
|
238
|
+
end
|
@@ -46,7 +46,7 @@ RSpec.describe Packer::Provisioner::Shell do
|
|
46
46
|
|
47
47
|
it 'converts all commands to strings' do
|
48
48
|
provisioner.inline(some_array_of_ints)
|
49
|
-
expect(provisioner.data['inline']).to eq(some_array_of_ints.map
|
49
|
+
expect(provisioner.data['inline']).to eq(some_array_of_ints.map(&:to_s))
|
50
50
|
provisioner.data.delete('inline')
|
51
51
|
end
|
52
52
|
|
@@ -96,7 +96,7 @@ RSpec.describe Packer::Provisioner::Shell do
|
|
96
96
|
|
97
97
|
it 'converts all commands to strings' do
|
98
98
|
provisioner.scripts(some_array_of_ints)
|
99
|
-
expect(provisioner.data['scripts']).to eq(some_array_of_ints.map
|
99
|
+
expect(provisioner.data['scripts']).to eq(some_array_of_ints.map(&:to_s))
|
100
100
|
provisioner.data.delete('scripts')
|
101
101
|
end
|
102
102
|
|
@@ -113,4 +113,4 @@ RSpec.describe Packer::Provisioner::Shell do
|
|
113
113
|
provisioner.data.delete('scripts')
|
114
114
|
end
|
115
115
|
end
|
116
|
-
end
|
116
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# Encoding: utf-8
|
2
|
+
# Copyright 2014 Ian Chesal
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
# See the License for the specific language governing permissions and
|
14
|
+
# limitations under the License.
|
15
|
+
require 'spec_helper'
|
16
|
+
require 'fakefs/spec_helpers'
|
17
|
+
|
18
|
+
RSpec.describe Packer::Runner do
|
19
|
+
describe '#run!' do
|
20
|
+
it 'returns stdout on success' do
|
21
|
+
open3 = class_double("Open3").as_stubbed_const(:transfer_nested_constants => true)
|
22
|
+
expect(open3).to receive(:capture3).and_return(['output', 'error', 0])
|
23
|
+
expect(described_class.run! 'true', quiet: true).to eq('output')
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'raises an error on failure' do
|
27
|
+
open3 = class_double("Open3").as_stubbed_const(:transfer_nested_constants => true)
|
28
|
+
expect(open3).to receive(:capture3).and_return(['output', 'error', 1])
|
29
|
+
expect{ described_class.run! 'false', quiet: true }.to raise_error
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
data/spec/packer_config_spec.rb
CHANGED
@@ -34,8 +34,7 @@ RSpec.describe Packer::Config do
|
|
34
34
|
describe "#validate" do
|
35
35
|
it 'returns true for a valid instance' do
|
36
36
|
expect(packer.builders).to receive(:length).and_return(1)
|
37
|
-
|
38
|
-
expect(open3).to receive(:capture3).and_return(['output', 'error', 0])
|
37
|
+
expect(Packer::Runner).to receive(:run!).and_return('')
|
39
38
|
FakeFS do
|
40
39
|
expect(packer.validate).to be_truthy
|
41
40
|
end
|
@@ -86,8 +85,7 @@ RSpec.describe Packer::Config do
|
|
86
85
|
it 'returns successfully if the build command returns a successful exit code' do
|
87
86
|
expect(packer).to receive(:validate).and_return(true)
|
88
87
|
expect(packer).to receive(:write).and_return(true)
|
89
|
-
|
90
|
-
expect(open3).to receive(:capture3).and_return(['output', 'error', 0])
|
88
|
+
expect(Packer::Runner).to receive(:run!).and_return('')
|
91
89
|
FakeFS do
|
92
90
|
expect(packer.build).to be_truthy
|
93
91
|
end
|
@@ -109,8 +107,7 @@ RSpec.describe Packer::Config do
|
|
109
107
|
it 'raises an error if the build command returns an unsuccessful exit code' do
|
110
108
|
expect(packer).to receive(:validate).and_return(true)
|
111
109
|
expect(packer).to receive(:write).and_return(true)
|
112
|
-
|
113
|
-
expect(open3).to receive(:capture3).and_return(['output', 'error', 1])
|
110
|
+
expect(Packer::Runner).to receive(:run!).and_raise(Packer::Runner::CommandExecutionError)
|
114
111
|
FakeFS do
|
115
112
|
expect { packer.build }.to raise_error
|
116
113
|
end
|
@@ -193,5 +190,4 @@ RSpec.describe Packer::Config do
|
|
193
190
|
expect(packer.macro.var).to eq('{{ .Var }}')
|
194
191
|
end
|
195
192
|
end
|
196
|
-
|
197
|
-
end
|
193
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: packer-config
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ian Chesal
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-12-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -113,6 +113,7 @@ files:
|
|
113
113
|
- Gemfile
|
114
114
|
- LICENSE
|
115
115
|
- README.md
|
116
|
+
- RELEASENOTES.md
|
116
117
|
- Rakefile
|
117
118
|
- TODO.md
|
118
119
|
- lib/packer-config.rb
|
@@ -132,6 +133,7 @@ files:
|
|
132
133
|
- lib/packer/provisioners/all.rb
|
133
134
|
- lib/packer/provisioners/file.rb
|
134
135
|
- lib/packer/provisioners/shell.rb
|
136
|
+
- lib/packer/runner.rb
|
135
137
|
- packer-config.gemspec
|
136
138
|
- spec/integration/README.md
|
137
139
|
- spec/integration/builds/.gitignore
|
@@ -160,6 +162,7 @@ files:
|
|
160
162
|
- spec/packer/provisioner_spec.rb
|
161
163
|
- spec/packer/provisioners/file_spec.rb
|
162
164
|
- spec/packer/provisioners/shell_spec.rb
|
165
|
+
- spec/packer/runner_spec.rb
|
163
166
|
- spec/packer_config_spec.rb
|
164
167
|
- spec/spec_helper.rb
|
165
168
|
- spec/unit_helper.rb
|
@@ -215,6 +218,7 @@ test_files:
|
|
215
218
|
- spec/packer/provisioner_spec.rb
|
216
219
|
- spec/packer/provisioners/file_spec.rb
|
217
220
|
- spec/packer/provisioners/shell_spec.rb
|
221
|
+
- spec/packer/runner_spec.rb
|
218
222
|
- spec/packer_config_spec.rb
|
219
223
|
- spec/spec_helper.rb
|
220
224
|
- spec/unit_helper.rb
|