Class: Jets::Builders::RackPackager

Inherits:
RubyPackager show all
Defined in:
lib/jets/builders/rack_packager.rb

Instance Attribute Summary

Attributes inherited from RubyPackager

#full_app_root

Instance Method Summary collapse

Methods inherited from RubyPackager

#bundle_install, #clean_old_submodules, #copy_cache_gems, #copy_gemfile_lock, #copy_gemfiles, #ensure_build_cache_bundle_config_exists!, #gemfile_exist?, #gems_options, #initialize, #install, #reconfigure_ruby_version, #replace_compiled_gems, #setup_bundle_config, #tidy, #tidy_project

Methods included from Util

#code_area, #full, #headline, #sh, #stage_area

Constructor Details

This class inherits a constructor from Jets::Builders::RubyPackager

Instance Method Details

#copy_rackup_wrappersObject



19
20
21
22
23
24
25
26
27
28
29
# File 'lib/jets/builders/rack_packager.rb', line 19

def copy_rackup_wrappers
  # IE: @full_app_root: /tmp/jets/demo/stage/code/rack
  rack_bin = "#{@full_app_root}/bin"
  %w[rackup rackup.rb].each do |file|
    src = File.expand_path("./rackup_wrappers/#{file}", File.dirname(__FILE__))
    dest = "#{rack_bin}/#{file}"
    FileUtils.mkdir_p(rack_bin) unless File.exist?(rack_bin)
    FileUtils.cp(src, dest)
    FileUtils.chmod 0755, dest
  end
end

#finishObject



3
4
5
6
7
8
9
# File 'lib/jets/builders/rack_packager.rb', line 3

def finish
  return unless gemfile_exist?

  symlink_gems
  rack_symlink
  copy_rackup_wrappers
end

Moves folder to a stage folder and create a symlink its place that links from /var/task to /tmp. Example:

code_area/rack => /tmp/rack


36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/jets/builders/rack_packager.rb', line 36

def rack_symlink
  src = "#{@full_app_root}/rack"
  return unless File.exist?(src)

  dest = "#{stage_area}/rack"
  dir = File.dirname(dest)
  FileUtils.mkdir_p(dir) unless File.exist?(dir)
  FileUtils.mv(src, dest)

  # Create symlink
  FileUtils.ln_sf("/tmp/rack", "/#{@full_app_root}/rack")
end


11
12
13
14
15
16
17
# File 'lib/jets/builders/rack_packager.rb', line 11

def symlink_gems
  ruby_folder = Jets::Gems.ruby_folder
  # IE: @full_app_root: /tmp/jets/demo/stage/code/rack
  dest = "#{@full_app_root}/vendor/bundle/ruby/#{ruby_folder}"
  FileUtils.mkdir_p(File.dirname(dest))
  FileUtils.ln_sf("/opt/ruby/gems/#{ruby_folder}", dest)
end