class Bosh::Cli::ReleaseArchiver
Attributes
build_dir[R]
filepath[R]
jobs[R]
license[R]
manifest[R]
packages[R]
Public Class Methods
new(filepath, manifest, packages, jobs, license = nil)
click to toggle source
# File lib/cli/release_archiver.rb, line 5 def initialize(filepath, manifest, packages, jobs, license = nil) @filepath = filepath @manifest = manifest @packages = packages @jobs = jobs @license = license @build_dir = Dir.mktmpdir end
Public Instance Methods
build()
click to toggle source
# File lib/cli/release_archiver.rb, line 15 def build FileUtils.copy(manifest, File.join(build_dir, 'release.MF'), :preserve => true) packages_dir = FileUtils.mkdir_p(File.join(build_dir, 'packages')) header("Copying packages") packages.each do |package| say(package.name.make_green) FileUtils.copy(package.tarball_path, File.join(packages_dir, "#{package.name}.tgz"), :preserve => true) end nl jobs_dir = FileUtils.mkdir_p(File.join(build_dir, 'jobs')) header("Copying jobs") jobs.each do |job| say(job.name.make_green) FileUtils.copy(job.tarball_path, File.join(jobs_dir, "#{job.name}.tgz"), :preserve => true) end nl if license header("Copying license") say("license".make_green) nl %x`tar -xzf #{license.tarball_path} -C #{build_dir} 2>&1` unless $?.exitstatus == 0 raise InvalidRelease, "Cannot extract license tarball" end end SortedReleaseArchiver.new(build_dir).archive(filepath) say("Generated #{filepath.make_green}") say("Release size: #{pretty_size(filepath).make_green}") end