Class: Tebako::PackagerLite
- Inherits:
-
Object
- Object
- Tebako::PackagerLite
- Defined in:
- lib/tebako/packager_lite.rb
Overview
Tebako application package descriptor
Constant Summary collapse
- DEPLOYMENT_ENVIRONMENT =
%w[ ARCHFLAGS BUNDLE_DEPLOYMENT BUNDLE_FORCE_RUBY_PLATFORM BUNDLE_FROZEN BUNDLE_WITH BUNDLE_WITHOUT CFLAGS CPPFLAGS CXXFLAGS LDFLAGS ].freeze
Instance Method Summary collapse
- #codegen ⇒ Object
- #create_implib ⇒ Object
- #create_layered_package ⇒ Object
- #create_monolithic_package ⇒ Object
- #create_package ⇒ Object
- #deploy ⇒ Object
-
#initialize(options_manager, scenario_manager) ⇒ PackagerLite
constructor
A new instance of PackagerLite.
- #name ⇒ Object
Constructor Details
#initialize(options_manager, scenario_manager) ⇒ PackagerLite
Returns a new instance of PackagerLite.
56 57 58 59 60 |
# File 'lib/tebako/packager_lite.rb', line 56 def initialize(, scenario_manager) @opts = @scm = scenario_manager @scm.configure_scenario end |
Instance Method Details
#codegen ⇒ Object
62 63 64 65 66 67 |
# File 'lib/tebako/packager_lite.rb', line 62 def codegen puts "-- Generating files" return Tebako::Codegen.generate_package_descriptor(@opts, @scm) unless layered? Tebako::Codegen.generate_package_descriptor(@opts, @scm, mount_point: application_mount_point) end |
#create_implib ⇒ Object
69 70 71 72 73 74 75 76 77 |
# File 'lib/tebako/packager_lite.rb', line 69 def create_implib rv = Tebako::RubyVersion.new(@opts.ruby_ver) bname = if @opts.mode == "application" @opts.ref else # @opts.mode == "both" @opts.package end Tebako::Packager.create_implib(@opts.ruby_src_dir, @opts.data_src_dir, bname, rv) end |
#create_layered_package ⇒ Object
96 97 98 99 100 101 102 103 104 105 |
# File 'lib/tebako/packager_lite.rb', line 96 def create_layered_package descriptor = codegen layers = package_layers.map do |mount_point, source| image = layer_image(mount_point) Tebako::Packager.mkdwarfs(@opts.deps_bin_dir, image, source, nil, @opts.compression_level, @opts.filesystem_cache_dir) Tebako::LayeredPackage::Layer.new(mount_point: mount_point, path: image) end Tebako::LayeredPackage.write(name, descriptor: descriptor, layers: layers) end |
#create_monolithic_package ⇒ Object
91 92 93 94 |
# File 'lib/tebako/packager_lite.rb', line 91 def create_monolithic_package Tebako::Packager.mkdwarfs(@opts.deps_bin_dir, name, @opts.data_src_dir, codegen, @opts.compression_level, @opts.filesystem_cache_dir) end |
#create_package ⇒ Object
79 80 81 82 83 84 85 86 87 88 89 |
# File 'lib/tebako/packager_lite.rb', line 79 def create_package deploy FileUtils.rm_f(name) layered? ? create_layered_package : create_monolithic_package Tebako::BuildReporter.record( stage: "application_package", status: "rebuilt", reason: "application package assembly completed" ) puts "Created tebako #{@opts.output_type_second} at \"#{name}\"" end |
#deploy ⇒ Object
107 108 109 110 111 112 113 |
# File 'lib/tebako/packager_lite.rb', line 107 def deploy return deploy_uncached if !@opts.deployment_cache? || layered? deployment_cache.fetch(@opts.data_src_dir) do deploy_uncached end end |
#name ⇒ Object
115 116 117 118 |
# File 'lib/tebako/packager_lite.rb', line 115 def name bname = Pathname.new(@opts.package).cleanpath.to_s @name ||= "#{bname}.tebako" end |