Module: Chef::Mixin::GetSourceFromPackage

Instance Method Summary collapse

Instance Method Details

#initialize(new_resource, run_context) ⇒ Object

FIXME: this is some bad code that I wrote a long time ago.

  • it does too much in the initializer
  • it mutates the new_resource
  • it does not support multipackage arrays this code is deprecated, check out the :use_package_names_for_source subclass directive instead

35
36
37
38
39
40
41
42
43
44
# File 'lib/chef/mixin/get_source_from_package.rb', line 35

def initialize(new_resource, run_context)
  super
  return if new_resource.package_name.is_a?(Array)
  # if we're passed something that looks like a filesystem path, with no source, use it
  #  - require at least one '/' in the path to avoid gem_package "foo" breaking if a file named 'foo' exists in the cwd
  if new_resource.source.nil? && new_resource.package_name.match(/#{::File::SEPARATOR}/) && ::File.exist?(new_resource.package_name)
    Chef::Log.debug("No package source specified, but #{new_resource.package_name} exists on the filesystem, copying to package source")
    new_resource.source(new_resource.package_name)
  end
end