launchd_resource

in itchef/cookbooks/cpe_launchd/resources/cpe_launchd.rb [78:101]


def launchd_resource(label, action, plist, ld_type)
  return unless label
  res = Chef::Resource::Launchd.new(label, run_context)
  unless plist.nil?
    if plist.key?('only_if')
      unless plist['only_if'].class == Proc
        fail 'cpe_launchd\'s only_if requires a Proc'
      end
      unless plist['only_if'].call
        Chef::Log.debug("cpe_launchd: Not including #{label}" +
                        'due to only_if')
        return
      end
    end
    plist.to_hash.each do |key, val|
      next if key == 'only_if'
      res.send(key.to_sym, val)
    end
  end
  res.type(ld_type) if ld_type
  res.run_action action
  res
end