class Vagrant::LXC::Action::SetupPackageFiles

Public Class Methods

new(app, env) click to toggle source
# File lib/vagrant-lxc/action/setup_package_files.rb, line 7
def initialize(app, env)
  @app = app

  env["package.include"]     ||= []
  env["package.vagrantfile"] ||= nil
end

Public Instance Methods

call(env) click to toggle source
# File lib/vagrant-lxc/action/setup_package_files.rb, line 14
def call(env)
  @env = env

  create_package_temp_dir
  move_rootfs_to_pkg_dir
  copy_box_files_to_pkg_dir

  @app.call env

  recover # called to cleanup temp directory
end
recover(*) click to toggle source
# File lib/vagrant-lxc/action/setup_package_files.rb, line 26
def recover(*)
  if @temp_dir && File.exist?(@temp_dir)
    FileUtils.rm_rf(@temp_dir)
  end
end

Private Instance Methods

copy_box_files_to_pkg_dir() click to toggle source
# File lib/vagrant-lxc/action/setup_package_files.rb, line 44
def copy_box_files_to_pkg_dir
  box_dir = @env[:machine].box.directory
  FileUtils.cp box_dir.join('metadata.json').to_s, @env['package.directory'].to_s
  if (template = box_dir.join('lxc-template')).exist?
    FileUtils.cp template.to_s, @env['package.directory'].to_s
  end
  if (conf = box_dir.join('lxc.conf')).exist?
    FileUtils.cp conf.to_s, @env['package.directory'].to_s
  end
  if (conf = box_dir.join('lxc-config')).exist?
    FileUtils.cp conf.to_s, @env['package.directory'].to_s
  end
end
create_package_temp_dir() click to toggle source
# File lib/vagrant-lxc/action/setup_package_files.rb, line 34
def create_package_temp_dir
  @env[:ui].info I18n.t("vagrant.actions.vm.export.create_dir")
  @temp_dir = @env["package.directory"] = @env[:tmp_path].join("container-export-#{Time.now.to_i.to_s}")
  FileUtils.mkpath(@temp_dir)
end
move_rootfs_to_pkg_dir() click to toggle source
# File lib/vagrant-lxc/action/setup_package_files.rb, line 40
def move_rootfs_to_pkg_dir
  FileUtils.mv @env['package.rootfs'].to_s, @env['package.directory'].to_s
end