class Vagrant::Action::General::PackageSetupFiles
Public Class Methods
new(app, env)
click to toggle source
# File lib/vagrant/action/general/package_setup_files.rb, line 5 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/action/general/package_setup_files.rb, line 12 def call(env) files = {} env["package.include"].each do |file| source = Pathname.new(file) dest = nil # If the source is relative then we add the file as-is to the include # directory. Otherwise, we copy only the file into the root of the # include directory. Kind of strange, but seems to match what people # expect based on history. if source.relative? dest = source else dest = source.basename end # Assign the mapping files[file] = dest end if env["package.vagrantfile"] # Vagrantfiles are treated special and mapped to a specific file files[env["package.vagrantfile"]] = "_Vagrantfile" end # Verify the mapping files.each do |from, _| raise Vagrant::Errors::PackageIncludeMissing, file: from if !File.exist?(from) end # Save the mapping env["package.files"] = files @app.call(env) end