# File lib/chef/provider/service/macosx.rb, line 43 def define_resource_requirements #super requirements.assert(:enable) do |a| a.failure_message Chef::Exceptions::UnsupportedAction, "#{self.to_s} does not support :enable" end requirements.assert(:disable) do |a| a.failure_message Chef::Exceptions::UnsupportedAction, "#{self.to_s} does not support :disable" end requirements.assert(:reload) do |a| a.failure_message Chef::Exceptions::UnsupportedAction, "#{self.to_s} does not support :reload" end requirements.assert(:all_actions) do |a| a.assertion { @plist_size < 2 } a.failure_message Chef::Exceptions::Service, "Several plist files match service name. Please use full service name." end requirements.assert(:all_actions) do |a| a.assertion { @plist_size > 0 } # No failrue here in original code - so we also will not # fail. Instead warn that the service is potentially missing a.whyrun "Assuming that the service would have been previously installed and is currently disabled." do @current_resource.enabled(false) @current_resource.running(false) end end end
# File lib/chef/provider/service/macosx.rb, line 33 def load_current_resource @current_resource = Chef::Resource::Service.new(@new_resource.name) @current_resource.service_name(@new_resource.service_name) @plist_size = 0 @plist = find_service_plist set_service_status @current_resource end
# File lib/chef/provider/service/macosx.rb, line 98 def restart_service if @new_resource.restart_command super else stop_service sleep 1 start_service end end
# File lib/chef/provider/service/macosx.rb, line 109 def set_service_status return if @plist == nil @current_resource.enabled(!@plist.nil?) if @current_resource.enabled @owner_uid = ::File.stat(@plist).uid @owner_gid = ::File.stat(@plist).gid shell_out!("launchctl list", :user => @owner_uid, :group => @owner_gid).stdout.each_line do |line| case line when /(\d+|-)\s+(?:\d+|-)\s+(.*\.?)#{@current_resource.service_name}/ pid = $1 @current_resource.running(!pid.to_i.zero?) end end else @current_resource.running(false) end end
# File lib/chef/provider/service/macosx.rb, line 74 def start_service if @current_resource.running Chef::Log.debug("#{@new_resource} already running, not starting") else if @new_resource.start_command super else shell_out!("launchctl load -w '#{@plist}'", :user => @owner_uid, :group => @owner_gid) end end end
# File lib/chef/provider/service/macosx.rb, line 86 def stop_service unless @current_resource.running Chef::Log.debug("#{@new_resource} not running, not stopping") else if @new_resource.stop_command super else shell_out!("launchctl unload '#{@plist}'", :user => @owner_uid, :group => @owner_gid) end end end
Generated with the Darkfish Rdoc Generator 2.