Class: Capsium::Reactor::PackageSaver
- Inherits:
-
Object
- Object
- Capsium::Reactor::PackageSaver
- Defined in:
- lib/capsium/reactor/package_saver.rb,
sig/capsium/reactor/package_saver.rbs
Overview
Folds a mounted package's base plus its overlay into a NEW versioned .cap (name-version+patch.cap) in the reactor workdir.
Instance Method Summary collapse
-
#initialize(mount) ⇒ PackageSaver
constructor
A new instance of PackageSaver.
-
#save(workdir) ⇒ Hash[String, String]
Saves and returns the "sha256", "name", "version" hash.
Constructor Details
#initialize(mount) ⇒ PackageSaver
Returns a new instance of PackageSaver.
18 19 20 21 22 |
# File 'lib/capsium/reactor/package_saver.rb', line 18 def initialize(mount) @mount = mount @package = mount.package = mount. end |
Instance Method Details
#save(workdir) ⇒ Hash[String, String]
Saves and returns the "sha256", "name", "version" hash.
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/capsium/reactor/package_saver.rb', line 25 def save(workdir) staging_parent = File.join(workdir, "saved") FileUtils.mkdir_p(staging_parent) stage = Dir.mktmpdir("fold-", staging_parent) begin fold_into(stage) output = Packager.new.pack(Package.new(stage), { force: true }) { "path" => output, "sha256" => Digest::SHA256.file(output).hexdigest, "name" => @package.name, "version" => bumped_version } ensure FileUtils.remove_entry(stage) end end |