def action_create
if @current_resource.to != canonicalize(@new_resource.to) ||
@current_resource.link_type != @new_resource.link_type
if @current_resource.to
converge_by("unlink existing file at #{@new_resource.target_file}") do
::File.unlink(@new_resource.target_file)
end
end
if @new_resource.link_type == :symbolic
converge_by("create symlink at #{@new_resource.target_file} to #{@new_resource.to}") do
file_class.symlink(canonicalize(@new_resource.to),@new_resource.target_file)
Chef::Log.debug("#{@new_resource} created #{@new_resource.link_type} link from #{@new_resource.to} -> #{@new_resource.target_file}")
Chef::Log.info("#{@new_resource} created")
end
elsif @new_resource.link_type == :hard
converge_by("create hard link at #{@new_resource.target_file} to #{@new_resource.to}") do
file_class.link(@new_resource.to, @new_resource.target_file)
Chef::Log.debug("#{@new_resource} created #{@new_resource.link_type} link from #{@new_resource.to} -> #{@new_resource.target_file}")
Chef::Log.info("#{@new_resource} created")
end
end
end
if @new_resource.link_type == :symbolic
if access_controls.requires_changes?
converge_by(access_controls.describe_changes) do
access_controls.set_all
end
end
end
end