boxgrinder-build 0.7.1 → 0.8.0
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.
- data/CHANGELOG +13 -0
- data/Manifest +3 -3
- data/Rakefile +1 -1
- data/bin/boxgrinder +121 -0
- data/boxgrinder-build.gemspec +12 -12
- data/lib/boxgrinder-build.rb +19 -0
- data/lib/boxgrinder-build/appliance.rb +30 -35
- data/lib/boxgrinder-build/helpers/appliance-customize-helper.rb +2 -2
- data/lib/boxgrinder-build/helpers/augeas-helper.rb +2 -2
- data/lib/boxgrinder-build/helpers/guestfs-helper.rb +16 -7
- data/lib/boxgrinder-build/helpers/image-helper.rb +48 -20
- data/lib/boxgrinder-build/helpers/linux-helper.rb +2 -2
- data/lib/boxgrinder-build/helpers/package-helper.rb +9 -12
- data/lib/boxgrinder-build/helpers/plugin-helper.rb +11 -19
- data/lib/boxgrinder-build/helpers/thor-helper.rb +82 -0
- data/lib/boxgrinder-build/managers/plugin-manager.rb +10 -25
- data/lib/boxgrinder-build/plugins/base-plugin.rb +50 -33
- data/rubygem-boxgrinder-build.spec +20 -5
- data/spec/appliance-spec.rb +60 -46
- data/spec/helpers/guestfs-helper-spec.rb +123 -37
- data/spec/helpers/image-helper-spec.rb +126 -56
- data/spec/helpers/package-helper-spec.rb +35 -0
- data/spec/helpers/plugin-helper-spec.rb +64 -20
- data/spec/managers/plugin-manager-spec.rb +33 -2
- data/spec/plugins/base-plugin-spec.rb +83 -27
- metadata +21 -20
- data/bin/boxgrinder-build +0 -91
- data/spec/rspec/src/appliances/jeos-f13.appl +0 -27
- data/spec/rspec/src/appliances/jeos-f13.ks +0 -23
@@ -16,9 +16,44 @@
|
|
16
16
|
# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
|
17
17
|
# 02110-1301 USA, or see the FSF site: http://www.fsf.org.
|
18
18
|
|
19
|
+
require 'logger'
|
19
20
|
require 'boxgrinder-build/helpers/package-helper'
|
20
21
|
|
21
22
|
module BoxGrinder
|
22
23
|
describe PackageHelper do
|
24
|
+
before(:each) do
|
25
|
+
@config = mock('Config')
|
26
|
+
@appliance_config = mock('ApplianceConfig')
|
27
|
+
@exec_helper = mock(ExecHelper)
|
28
|
+
@log = Logger.new('/dev/null')
|
29
|
+
@appliance_config.stub!(:name).and_return('jeos-f13')
|
30
|
+
|
31
|
+
@helper = PackageHelper.new(@config, @appliance_config, :log => @log, :exec_helper => @exec_helper)
|
32
|
+
end
|
33
|
+
|
34
|
+
it "should package deliverables" do
|
35
|
+
File.should_receive(:exists?).with('destination/package.tgz').and_return(false)
|
36
|
+
File.should_receive(:expand_path).with('a/dir').and_return('a/dir/expanded')
|
37
|
+
FileUtils.should_receive(:ln_s).with('a/dir/expanded', 'destination/package')
|
38
|
+
FileUtils.should_receive(:rm).with('destination/package')
|
39
|
+
|
40
|
+
@exec_helper.should_receive(:execute).with("tar -C 'destination' -hcvzf 'destination/package.tgz' 'package'")
|
41
|
+
|
42
|
+
@helper.package('a/dir', 'destination/package.tgz')
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should NOT package deliverables if pacakge already exists" do
|
46
|
+
File.should_receive(:exists?).with('destination/package.tgz').and_return(true)
|
47
|
+
|
48
|
+
@exec_helper.should_not_receive(:execute)
|
49
|
+
|
50
|
+
@helper.package('a/dir', 'destination/package.tgz')
|
51
|
+
end
|
52
|
+
|
53
|
+
it "should raise if unsupported format is specified" do
|
54
|
+
lambda {
|
55
|
+
@helper.package('a/dir', 'destination/package.tgz', :xyz)
|
56
|
+
}.should raise_error("Specified format: 'xyz' is currently unsupported.")
|
57
|
+
end
|
23
58
|
end
|
24
59
|
end
|
@@ -16,49 +16,47 @@
|
|
16
16
|
# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
|
17
17
|
# 02110-1301 USA, or see the FSF site: http://www.fsf.org.
|
18
18
|
|
19
|
+
require 'boxgrinder-core/helpers/log-helper'
|
19
20
|
require 'boxgrinder-build/helpers/plugin-helper'
|
20
21
|
require 'ostruct'
|
21
22
|
|
22
23
|
module BoxGrinder
|
23
24
|
describe PluginHelper do
|
24
25
|
before(:all) do
|
25
|
-
@
|
26
|
-
@plugin_array = %w(boxgrinder-build-fedora-os-plugin boxgrinder-build-rhel-os-plugin boxgrinder-build-centos-os-plugin boxgrinder-build-ec2-platform-plugin boxgrinder-build-vmware-platform-plugin boxgrinder-build-s3-delivery-plugin boxgrinder-build-sftp-delivery-plugin boxgrinder-build-local-delivery-plugin boxgrinder-build-ebs-delivery-plugin)
|
26
|
+
@plugin_array = %w(boxgrinder-build-fedora-os-plugin boxgrinder-build-rhel-os-plugin boxgrinder-build-centos-os-plugin boxgrinder-build-ec2-platform-plugin boxgrinder-build-vmware-platform-plugin boxgrinder-build-virtualbox-platform-plugin boxgrinder-build-s3-delivery-plugin boxgrinder-build-sftp-delivery-plugin boxgrinder-build-local-delivery-plugin boxgrinder-build-ebs-delivery-plugin)
|
27
27
|
end
|
28
28
|
|
29
29
|
before(:each) do
|
30
|
-
@
|
30
|
+
@log = LogHelper.new(:level => :trace, :type => :stdout)
|
31
|
+
@plugin_helper = PluginHelper.new(OpenStruct.new(:additional_plugins => []), :log => @log)
|
31
32
|
end
|
32
33
|
|
33
|
-
it "should
|
34
|
-
@
|
35
|
-
|
34
|
+
it "should require default plugins" do
|
35
|
+
@plugin_array.each do |plugin|
|
36
|
+
@plugin_helper.should_receive(:require).once.with(plugin)
|
37
|
+
end
|
36
38
|
|
37
|
-
|
38
|
-
@plugin_helper = PluginHelper.new(:options => OpenStruct.new(:plugins => '"abc,def"'))
|
39
|
-
@plugin_helper.parse_plugin_list.should == ['abc', 'def']
|
39
|
+
@plugin_helper.read_and_require
|
40
40
|
end
|
41
41
|
|
42
|
-
it "should
|
43
|
-
@
|
44
|
-
@plugin_helper.parse_plugin_list.should == ['abc', 'def']
|
45
|
-
end
|
42
|
+
it "should require default plugins and fail silently" do
|
43
|
+
@log = mock('Logger')
|
46
44
|
|
47
|
-
|
48
|
-
@plugin_helper = PluginHelper.new(:options => OpenStruct.new(:plugins => "' abc , def'"))
|
49
|
-
@plugin_helper.parse_plugin_list.should == ['abc', 'def']
|
50
|
-
end
|
45
|
+
@plugin_helper.instance_variable_set(:@log, @log)
|
51
46
|
|
52
|
-
it "should require default plugins" do
|
53
47
|
@plugin_array.each do |plugin|
|
54
|
-
@
|
48
|
+
@log.should_receive(:trace).with("Loading plugin '#{plugin}'...")
|
49
|
+
@plugin_helper.should_receive(:require).once.with(plugin).and_raise(LoadError)
|
50
|
+
@log.should_receive(:trace).with("- Not found: LoadError")
|
55
51
|
end
|
56
52
|
|
53
|
+
@log.should_not_receive(:warn)
|
54
|
+
|
57
55
|
@plugin_helper.read_and_require
|
58
56
|
end
|
59
57
|
|
60
58
|
it "should read plugins specified in command line" do
|
61
|
-
@plugin_helper = PluginHelper.new(
|
59
|
+
@plugin_helper = PluginHelper.new(OpenStruct.new(:additional_plugins => ['abc', 'def']), :log => @log)
|
62
60
|
|
63
61
|
@plugin_array.each do |plugin|
|
64
62
|
@plugin_helper.should_receive(:require).once.with(plugin)
|
@@ -69,6 +67,52 @@ module BoxGrinder
|
|
69
67
|
|
70
68
|
@plugin_helper.read_and_require
|
71
69
|
end
|
70
|
+
|
71
|
+
it "should read plugins specified in command line and warn if plugin cannot be loaded" do
|
72
|
+
@log = mock('Logger')
|
73
|
+
@plugin_helper = PluginHelper.new(OpenStruct.new(:additional_plugins => ['abc']), :log => @log)
|
74
|
+
|
75
|
+
@plugin_array.each do |plugin|
|
76
|
+
@log.should_receive(:trace).with("Loading plugin '#{plugin}'...")
|
77
|
+
@plugin_helper.should_receive(:require).once.with(plugin)
|
78
|
+
@log.should_receive(:trace).with("- OK")
|
79
|
+
end
|
80
|
+
|
81
|
+
@log.should_receive(:trace).with("Loading plugin 'abc'...")
|
82
|
+
@plugin_helper.should_receive(:require).ordered.with('abc').and_raise(LoadError)
|
83
|
+
@log.should_receive(:trace).with("- Not found: LoadError")
|
84
|
+
@log.should_receive(:warn).with("Specified plugin: 'abc' wasn't found. Make sure its name is correct, skipping...")
|
85
|
+
|
86
|
+
@plugin_helper.read_and_require
|
87
|
+
end
|
88
|
+
|
89
|
+
it "should print os plugins" do
|
90
|
+
@log = mock('Logger')
|
91
|
+
|
92
|
+
@plugin_helper.instance_variable_set(:@log, @log)
|
93
|
+
|
94
|
+
@log.should_receive(:debug).with('Loading os plugins...')
|
95
|
+
@log.should_receive(:debug).with('We have 1 os plugin(s) registered')
|
96
|
+
@log.should_receive(:debug).with("- fedora plugin for Fedora.")
|
97
|
+
@log.should_receive(:debug).with('Plugins loaded.')
|
98
|
+
|
99
|
+
@plugin_helper.print_plugins('os') { {'fedora' => {:full_name => "Fedora"}} }
|
100
|
+
end
|
101
|
+
|
102
|
+
it "should load all plugins" do
|
103
|
+
@plugin_helper.should_receive(:read_and_require)
|
104
|
+
|
105
|
+
plugin_manager = mock('PluginManager')
|
106
|
+
plugin_manager.stub!(:plugins).and_return({:os =>{}, :platform =>{}, :delivery =>{}})
|
107
|
+
|
108
|
+
PluginManager.stub!(:instance).and_return(plugin_manager)
|
109
|
+
|
110
|
+
@plugin_helper.should_receive(:print_plugins).with('os')
|
111
|
+
@plugin_helper.should_receive(:print_plugins).with('platform')
|
112
|
+
@plugin_helper.should_receive(:print_plugins).with('delivery')
|
113
|
+
|
114
|
+
@plugin_helper.load_plugins
|
115
|
+
end
|
72
116
|
end
|
73
117
|
end
|
74
118
|
|
@@ -26,14 +26,14 @@ module BoxGrinder
|
|
26
26
|
end
|
27
27
|
|
28
28
|
it "should register simple plugin" do
|
29
|
-
@manager.register_plugin(
|
29
|
+
@manager.register_plugin({:class => PluginManager, :type => :delivery, :name => :abc, :full_name => "Amazon Simple Storage Service (Amazon S3)"})
|
30
30
|
|
31
31
|
@manager.plugins[:delivery].size.should == 1
|
32
32
|
@manager.plugins[:delivery][:abc][:class].should == PluginManager
|
33
33
|
end
|
34
34
|
|
35
35
|
it "should register plugin with many types" do
|
36
|
-
@manager.register_plugin(
|
36
|
+
@manager.register_plugin({:class => PluginManager, :type => :delivery, :name => :s3, :full_name => "Amazon Simple Storage Service (Amazon S3)", :types => [:s3, :cloudfront, :ami]})
|
37
37
|
|
38
38
|
@manager.plugins[:delivery].size.should == 4
|
39
39
|
@manager.plugins[:delivery][:abc][:class].should == PluginManager
|
@@ -41,5 +41,36 @@ module BoxGrinder
|
|
41
41
|
@manager.plugins[:delivery][:s3][:class].should == PluginManager
|
42
42
|
@manager.plugins[:delivery][:cloudfront][:class].should == PluginManager
|
43
43
|
end
|
44
|
+
|
45
|
+
it "should initialize a plugin" do
|
46
|
+
plugin = mock('Plugin')
|
47
|
+
|
48
|
+
clazz = mock('Class')
|
49
|
+
clazz.should_receive(:new).and_return(plugin)
|
50
|
+
|
51
|
+
@manager.instance_variable_set(:@plugins, {:delivery => {}, :os => {:fedora => {:class => clazz}}, :platform => {}})
|
52
|
+
@manager.initialize_plugin(:os, :fedora).should == [plugin, {:class => clazz}]
|
53
|
+
end
|
54
|
+
|
55
|
+
it "should raise if plugin initialization cannot be finished" do
|
56
|
+
clazz = mock('Class')
|
57
|
+
clazz.should_receive(:new).and_raise("Something")
|
58
|
+
clazz.should_receive(:to_s).and_return("Fedora")
|
59
|
+
|
60
|
+
@manager.instance_variable_set(:@plugins, {:delivery => {}, :os => {:fedora => {:class => clazz}}, :platform => {}})
|
61
|
+
|
62
|
+
lambda {
|
63
|
+
@manager.initialize_plugin(:os, :fedora)
|
64
|
+
}.should raise_error("Error while initializing 'Fedora' plugin.")
|
65
|
+
end
|
66
|
+
|
67
|
+
it "should register the plugin with 'plugin' method" do
|
68
|
+
plugin_manager = mock(PluginManager)
|
69
|
+
plugin_manager.should_receive(:register_plugin).with(:class => String, :type => :platform, :name => :ec2, :full_name => "Amazon Elastic Compute Cloud (Amazon EC2)")
|
70
|
+
|
71
|
+
PluginManager.should_receive(:instance).and_return(plugin_manager)
|
72
|
+
|
73
|
+
plugin :class => String, :type => :platform, :name => :ec2, :full_name => "Amazon Elastic Compute Cloud (Amazon EC2)"
|
74
|
+
end
|
44
75
|
end
|
45
76
|
end
|
@@ -18,6 +18,7 @@
|
|
18
18
|
|
19
19
|
require 'rubygems'
|
20
20
|
require 'boxgrinder-build/plugins/base-plugin'
|
21
|
+
require 'boxgrinder-core/helpers/log-helper'
|
21
22
|
require 'yaml'
|
22
23
|
|
23
24
|
module BoxGrinder
|
@@ -27,13 +28,22 @@ module BoxGrinder
|
|
27
28
|
@config.stub!(:name).and_return('BoxGrinder')
|
28
29
|
@config.stub!(:version_with_release).and_return('0.1.2')
|
29
30
|
|
31
|
+
plugins = mock('Plugins')
|
32
|
+
plugins.stub!(:[]).with('plugin_name').and_return({})
|
33
|
+
|
34
|
+
@config.stub!(:[]).with(:plugins).and_return(plugins)
|
35
|
+
@config.stub!(:file).and_return('/home/abc/boxgrinder_config_file')
|
36
|
+
|
30
37
|
@appliance_config = mock('ApplianceConfig')
|
31
38
|
|
32
39
|
@appliance_config.stub!(:path).and_return(OpenCascade.new({:build => 'build/path'}))
|
33
|
-
@appliance_config.stub!(:os).and_return(OpenCascade.new({:name => 'fedora', :version => '
|
40
|
+
@appliance_config.stub!(:os).and_return(OpenCascade.new({:name => 'fedora', :version => '13'}))
|
41
|
+
|
42
|
+
@log = LogHelper.new(:level => :trace, :type => :stdout)
|
34
43
|
|
35
44
|
@plugin = BasePlugin.new
|
36
|
-
@plugin.
|
45
|
+
@plugin.should_receive(:merge_plugin_config)
|
46
|
+
@plugin.init(@config, @appliance_config, :plugin_info => {:name => :plugin_name, :full_name => "Amazon Simple Storage Service (Amazon S3)"}, :log => @log)
|
37
47
|
end
|
38
48
|
|
39
49
|
it "should be initialized after running init method" do
|
@@ -93,18 +103,28 @@ module BoxGrinder
|
|
93
103
|
@plugin.deliverables_exists?.should == false
|
94
104
|
end
|
95
105
|
|
96
|
-
|
97
|
-
|
106
|
+
describe ".run" do
|
107
|
+
it "should run the plugin" do
|
108
|
+
@plugin.register_supported_os('fedora', ['12', '13'])
|
109
|
+
@plugin.register_deliverable(:disk => "disk")
|
98
110
|
|
99
|
-
|
100
|
-
|
111
|
+
FileUtils.should_receive(:rm_rf).with("build/path/plugin_name-plugin/tmp")
|
112
|
+
FileUtils.should_receive(:mkdir_p).with("build/path/plugin_name-plugin/tmp")
|
101
113
|
|
102
|
-
|
114
|
+
@plugin.should_receive(:execute).with('a', 3)
|
103
115
|
|
104
|
-
|
105
|
-
|
116
|
+
FileUtils.should_receive(:mv).with("build/path/plugin_name-plugin/tmp/disk", "build/path/plugin_name-plugin/disk")
|
117
|
+
FileUtils.should_receive(:rm_rf).with("build/path/plugin_name-plugin/tmp")
|
106
118
|
|
107
|
-
|
119
|
+
@plugin.run('a', 3)
|
120
|
+
end
|
121
|
+
|
122
|
+
it "should fail if OS is not supported" do
|
123
|
+
@plugin.register_supported_os('fedora', ['12', '13'])
|
124
|
+
@appliance_config.stub!(:os).and_return(OpenCascade.new({:name => 'fedora', :version => '14'}))
|
125
|
+
@log.should_receive(:error).with('Amazon Simple Storage Service (Amazon S3) plugin supports following operating systems: fedora (versions: 12, 13). Your appliance contains fedora 14 operating system which is not supported by this plugin, sorry.')
|
126
|
+
@plugin.run
|
127
|
+
end
|
108
128
|
end
|
109
129
|
|
110
130
|
it "should register a supported os" do
|
@@ -120,7 +140,7 @@ module BoxGrinder
|
|
120
140
|
it "should return that the OS is supported" do
|
121
141
|
@plugin.register_supported_os('fedora', ['12', '13'])
|
122
142
|
|
123
|
-
@plugin.instance_variable_get(:@appliance_config).os.name
|
143
|
+
@plugin.instance_variable_get(:@appliance_config).os.name = 'fedora'
|
124
144
|
@plugin.instance_variable_get(:@appliance_config).os.version = '12'
|
125
145
|
|
126
146
|
@plugin.is_supported_os?.should == true
|
@@ -129,12 +149,16 @@ module BoxGrinder
|
|
129
149
|
it "should return that the OS is not supported" do
|
130
150
|
@plugin.register_supported_os('fedora', ['1223'])
|
131
151
|
|
132
|
-
@plugin.instance_variable_get(:@appliance_config).os.name
|
152
|
+
@plugin.instance_variable_get(:@appliance_config).os.name = 'fedora'
|
133
153
|
@plugin.instance_variable_get(:@appliance_config).os.version = '12'
|
134
154
|
|
135
155
|
@plugin.is_supported_os?.should == false
|
136
156
|
end
|
137
157
|
|
158
|
+
it "should return false when no operating systems are specified" do
|
159
|
+
@plugin.is_supported_os?.should == true
|
160
|
+
end
|
161
|
+
|
138
162
|
it "should return supported os string" do
|
139
163
|
@plugin.register_supported_os('fedora', ['12', '13'])
|
140
164
|
@plugin.register_supported_os('centos', ['5'])
|
@@ -148,29 +172,61 @@ module BoxGrinder
|
|
148
172
|
@plugin.instance_variable_get(:@plugin_config)['key'].should == 'avalue'
|
149
173
|
end
|
150
174
|
|
151
|
-
|
152
|
-
|
175
|
+
describe ".read_plugin_config" do
|
176
|
+
it "should read plugin config" do
|
177
|
+
plugins = mock('Plugins')
|
178
|
+
plugins.stub!(:[]).with('plugin_name').and_return({'abc' => 'def'})
|
179
|
+
@config.stub!(:[]).with(:plugins).and_return(plugins)
|
180
|
+
|
181
|
+
@plugin.read_plugin_config
|
182
|
+
@plugin.instance_variable_get(:@plugin_config)['abc'].should == 'def'
|
183
|
+
end
|
184
|
+
|
185
|
+
it "should read plugin config and exit early" do
|
186
|
+
@config.stub!(:[]).with(:plugins).and_return(nil)
|
187
|
+
@plugin.read_plugin_config
|
188
|
+
end
|
189
|
+
end
|
153
190
|
|
154
|
-
|
155
|
-
|
191
|
+
describe ".current_platform" do
|
192
|
+
it "should return raw" do
|
193
|
+
@plugin.current_platform.should == 'raw'
|
194
|
+
end
|
156
195
|
|
157
|
-
|
196
|
+
it "should return vmware" do
|
197
|
+
@plugin.instance_variable_set(:@previous_plugin_info, {:type => :platform, :name => :vmware})
|
158
198
|
|
159
|
-
|
199
|
+
@plugin.current_platform.should == 'vmware'
|
200
|
+
end
|
160
201
|
end
|
161
202
|
|
162
|
-
|
163
|
-
|
203
|
+
describe ".validate_plugin_config" do
|
204
|
+
it "should validate plugn config" do
|
205
|
+
@plugin.instance_variable_set(:@plugin_config, {'one' => :platform, 'two' => :vmware})
|
164
206
|
|
165
|
-
|
166
|
-
|
207
|
+
@plugin.validate_plugin_config(['one', 'two'])
|
208
|
+
end
|
167
209
|
|
168
|
-
|
169
|
-
@plugin.
|
170
|
-
|
171
|
-
|
172
|
-
|
210
|
+
it "should raise because some data isn't provided" do
|
211
|
+
@plugin.instance_variable_set(:@plugin_config, {'one' => :platform, 'two' => :vmware})
|
212
|
+
|
213
|
+
lambda {
|
214
|
+
@plugin.validate_plugin_config(['one', 'two', 'three'])
|
215
|
+
}.should raise_error(RuntimeError, "Please specify a valid 'three' key in BoxGrinder configuration file: '/home/abc/boxgrinder_config_file' or use CLI '---config three:DATA' argument. ")
|
173
216
|
end
|
174
217
|
end
|
218
|
+
|
219
|
+
it "should not allow to execute the plugin before initialization" do
|
220
|
+
@plugin = BasePlugin.new
|
221
|
+
|
222
|
+
lambda {
|
223
|
+
@plugin.execute
|
224
|
+
}.should raise_error(RuntimeError, "You can only execute the plugin after the plugin is initialized, please initialize the plugin using init method.")
|
225
|
+
end
|
226
|
+
|
227
|
+
it "should return target deliverables" do
|
228
|
+
@plugin.register_deliverable(:disk => "disk", :vmx => "vmx")
|
229
|
+
@plugin.deliverables.should == {:disk => "build/path/plugin_name-plugin/disk", :vmx => "build/path/plugin_name-plugin/vmx"}
|
230
|
+
end
|
175
231
|
end
|
176
232
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: boxgrinder-build
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 63
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 0.
|
8
|
+
- 8
|
9
|
+
- 0
|
10
|
+
version: 0.8.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Marek Goldmann
|
@@ -15,23 +15,22 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-
|
18
|
+
date: 2011-02-09 00:00:00 +01:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
|
-
name:
|
22
|
+
name: thor
|
23
23
|
prerelease: false
|
24
24
|
requirement: &id001 !ruby/object:Gem::Requirement
|
25
25
|
none: false
|
26
26
|
requirements:
|
27
|
-
- -
|
27
|
+
- - ">="
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
hash:
|
29
|
+
hash: 17
|
30
30
|
segments:
|
31
|
-
- 4
|
32
31
|
- 0
|
33
|
-
-
|
34
|
-
version:
|
32
|
+
- 13
|
33
|
+
version: "0.13"
|
35
34
|
type: :runtime
|
36
35
|
version_requirements: *id001
|
37
36
|
- !ruby/object:Gem::Dependency
|
@@ -42,25 +41,26 @@ dependencies:
|
|
42
41
|
requirements:
|
43
42
|
- - ~>
|
44
43
|
- !ruby/object:Gem::Version
|
45
|
-
hash:
|
44
|
+
hash: 23
|
46
45
|
segments:
|
47
46
|
- 0
|
48
|
-
-
|
49
|
-
-
|
50
|
-
version: 0.
|
47
|
+
- 2
|
48
|
+
- 0
|
49
|
+
version: 0.2.0
|
51
50
|
type: :runtime
|
52
51
|
version_requirements: *id002
|
53
52
|
description: A tool for creating appliances from simple plain text files for various virtual environments.
|
54
53
|
email: info@boxgrinder.org
|
55
54
|
executables:
|
56
|
-
- boxgrinder
|
55
|
+
- boxgrinder
|
57
56
|
extensions: []
|
58
57
|
|
59
58
|
extra_rdoc_files:
|
60
59
|
- CHANGELOG
|
61
60
|
- LICENSE
|
62
61
|
- README
|
63
|
-
- bin/boxgrinder
|
62
|
+
- bin/boxgrinder
|
63
|
+
- lib/boxgrinder-build.rb
|
64
64
|
- lib/boxgrinder-build/appliance.rb
|
65
65
|
- lib/boxgrinder-build/helpers/appliance-customize-helper.rb
|
66
66
|
- lib/boxgrinder-build/helpers/augeas-helper.rb
|
@@ -69,6 +69,7 @@ extra_rdoc_files:
|
|
69
69
|
- lib/boxgrinder-build/helpers/linux-helper.rb
|
70
70
|
- lib/boxgrinder-build/helpers/package-helper.rb
|
71
71
|
- lib/boxgrinder-build/helpers/plugin-helper.rb
|
72
|
+
- lib/boxgrinder-build/helpers/thor-helper.rb
|
72
73
|
- lib/boxgrinder-build/managers/plugin-manager.rb
|
73
74
|
- lib/boxgrinder-build/plugins/base-plugin.rb
|
74
75
|
files:
|
@@ -77,8 +78,9 @@ files:
|
|
77
78
|
- Manifest
|
78
79
|
- README
|
79
80
|
- Rakefile
|
80
|
-
- bin/boxgrinder
|
81
|
+
- bin/boxgrinder
|
81
82
|
- boxgrinder-build.gemspec
|
83
|
+
- lib/boxgrinder-build.rb
|
82
84
|
- lib/boxgrinder-build/appliance.rb
|
83
85
|
- lib/boxgrinder-build/helpers/appliance-customize-helper.rb
|
84
86
|
- lib/boxgrinder-build/helpers/augeas-helper.rb
|
@@ -87,6 +89,7 @@ files:
|
|
87
89
|
- lib/boxgrinder-build/helpers/linux-helper.rb
|
88
90
|
- lib/boxgrinder-build/helpers/package-helper.rb
|
89
91
|
- lib/boxgrinder-build/helpers/plugin-helper.rb
|
92
|
+
- lib/boxgrinder-build/helpers/thor-helper.rb
|
90
93
|
- lib/boxgrinder-build/managers/plugin-manager.rb
|
91
94
|
- lib/boxgrinder-build/plugins/base-plugin.rb
|
92
95
|
- rubygem-boxgrinder-build.spec
|
@@ -101,8 +104,6 @@ files:
|
|
101
104
|
- spec/helpers/plugin-helper-spec.rb
|
102
105
|
- spec/managers/plugin-manager-spec.rb
|
103
106
|
- spec/plugins/base-plugin-spec.rb
|
104
|
-
- spec/rspec/src/appliances/jeos-f13.appl
|
105
|
-
- spec/rspec/src/appliances/jeos-f13.ks
|
106
107
|
has_rdoc: true
|
107
108
|
homepage: http://www.jboss.org/boxgrinder
|
108
109
|
licenses: []
|