lib/boxgrinder-build/helpers/package-helper.rb in boxgrinder-build-0.4.1 vs lib/boxgrinder-build/helpers/package-helper.rb in boxgrinder-build-0.5.0
- old
+ new
@@ -18,38 +18,47 @@
# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
# 02110-1301 USA, or see the FSF site: http://www.fsf.org.
module BoxGrinder
class PackageHelper
- def initialize(config, appliance_config, options = {})
+ def initialize(config, appliance_config, dir, options = {})
@config = config
@appliance_config = appliance_config
+ @dir = dir
@log = options[:log] || Logger.new(STDOUT)
@exec_helper = options[:exec_helper] || ExecHelper.new({:log => @log})
end
- def package(deliverables, type = :tar)
- files = []
- files << File.basename(deliverables[:disk])
+ def package(deliverables, options = {})
+ type = options[:type] || :tar
+ plugin_info = options[:plugin_info]
- [:metadata, :other].each do |deliverable_type|
- deliverables[deliverable_type].each_value do |file|
- files << File.basename(file)
+ platform = 'raw'
+
+ unless plugin_info.nil?
+ if plugin_info[:type] == :platform
+ platform = plugin_info[:name].to_s
end
end
- deliverable_platform = deliverables[:platform].nil? ? "" : deliverables[:platform]
- package_path = "#{@appliance_config.path.dir.packages}/#{@appliance_config.name}-#{@appliance_config.version}.#{@appliance_config.release}-#{@appliance_config.hardware.arch}-#{deliverable_platform}.tgz"
+ files = []
+ deliverables.each_value do |file|
+ files << File.basename(file)
+ end
+
+ #TODO rewrite this to use deliverables and previous_deliverables
+ package_path = "#{@dir.tmp}/#{@appliance_config.name}-#{@appliance_config.version}.#{@appliance_config.release}-#{@appliance_config.os.name}-#{@appliance_config.os.version}-#{@appliance_config.hardware.arch}-#{platform}.tgz"
+
if File.exists?(package_path)
- @log.info "Package of #{type} type for #{@appliance_config.name} appliance and #{deliverable_platform} platform already exists, skipping."
+ @log.info "Package of #{type} type for #{@appliance_config.name} appliance and #{platform} platform already exists, skipping."
return package_path
end
FileUtils.mkdir_p(File.dirname(package_path))
- @log.info "Packaging #{@appliance_config.name} appliance for #{deliverable_platform} platform to #{type}..."
+ @log.info "Packaging #{@appliance_config.name} appliance for #{platform} platform to #{type}..."
case type
when :tar
@exec_helper.execute "tar -C #{File.dirname(deliverables[:disk])} -cvzf '#{package_path}' #{files.join(' ')}"
else
\ No newline at end of file