boxgrinder-build 0.7.1 → 0.8.0
Sign up to get free protection for your applications and to get access to all the features.
- 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: []
|