Class: Jets::Builders::LambdaLayer
- Inherits:
-
Object
- Object
- Jets::Builders::LambdaLayer
- Includes:
- Util
- Defined in:
- lib/jets/builders/lambda_layer.rb
Instance Method Summary collapse
-
#build ⇒ Object
At this point we gems have all been moved to stage/code/vendor/bundle, this includes binary gems, a good state.
- #move_opt_to_stage ⇒ Object
- #move_vendor_to_opt ⇒ Object
-
#symlink_vendor_gems ⇒ Object
Simple logic: vendor/bundle/ruby/2.5.0 -> /opt/ruby/gems/2.5.0.
Methods included from Util
#code_area, #full, #headline, #sh, #stage_area
Instance Method Details
#build ⇒ Object
At this point we gems have all been moved to stage/code/vendor/bundle, this includes binary gems, a good state. This method moves them:
from stage/code/vendor/bundle/ruby/2.5.0
to stage/opt/ruby/gems/2.5.0
So we can move gems into the Lambda Layer. Important folders later:
stage/code/opt/lib
stage/code/opt/ruby
16 17 18 19 20 |
# File 'lib/jets/builders/lambda_layer.rb', line 16 def build move_opt_to_stage move_vendor_to_opt symlink_vendor_gems end |
#move_opt_to_stage ⇒ Object
22 23 24 25 26 27 |
# File 'lib/jets/builders/lambda_layer.rb', line 22 def move_opt_to_stage opt_original = "#{code_area}/opt" opt = "#{stage_area}/opt" FileUtils.mkdir_p(File.dirname(opt)) FileUtils.mv(opt_original, opt) end |
#move_vendor_to_opt ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/jets/builders/lambda_layer.rb', line 29 def move_vendor_to_opt ruby_folder = Jets::Gems.ruby_folder gems_original = "#{code_area}/vendor/bundle/ruby/#{ruby_folder}" gems = "#{stage_area}/opt/ruby/gems/#{ruby_folder}" FileUtils.mkdir_p(File.dirname(gems)) FileUtils.mv(gems_original, gems) # Deleting in this way to make sure folders are empty before we delete them FileUtils.rmdir("#{code_area}/vendor/bundle/ruby") FileUtils.rmdir("#{code_area}/vendor/bundle") FileUtils.rmdir("#{code_area}/vendor") if Dir.empty?("#{code_area}/vendor") end |
#symlink_vendor_gems ⇒ Object
Simple logic: vendor/bundle/ruby/2.5.0 -> /opt/ruby/gems/2.5.0
42 43 44 45 46 47 48 |
# File 'lib/jets/builders/lambda_layer.rb', line 42 def symlink_vendor_gems ruby_folder = Jets::Gems.ruby_folder dest = "#{code_area}/vendor/bundle/ruby/#{ruby_folder}" FileUtils.mkdir_p(File.dirname(dest)) puts "ln -sf /opt/ruby/gems/#{ruby_folder} #{dest}" # uncommen to debug FileUtils.ln_sf("/opt/ruby/gems/#{ruby_folder}", dest) end |