diff options
author | Nigel Kersten <nigelk@google.com> | 2009-02-09 16:27:15 -0800 |
---|---|---|
committer | James Turnbull <james@lovedthanlost.net> | 2009-02-14 22:38:06 +1100 |
commit | 0bc3c0785cd11c79f8cd5e9c8804f6694dbc7da4 (patch) | |
tree | 56db858a2084c3cc84c05c8ec33e0dd74fe29932 | |
parent | 2561c8e252dcf66890513458750bb1329a03beec (diff) | |
download | puppet-0bc3c0785cd11c79f8cd5e9c8804f6694dbc7da4.tar.gz puppet-0bc3c0785cd11c79f8cd5e9c8804f6694dbc7da4.tar.xz puppet-0bc3c0785cd11c79f8cd5e9c8804f6694dbc7da4.zip |
Fix launchd service provider so it is backwards compatible with OS X 10.4 as well
Clean up fix to launchd service provider to be more concise
-rw-r--r-- | lib/puppet/provider/service/launchd.rb | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/lib/puppet/provider/service/launchd.rb b/lib/puppet/provider/service/launchd.rb index 891c96bd8..64b61ff85 100644 --- a/lib/puppet/provider/service/launchd.rb +++ b/lib/puppet/provider/service/launchd.rb @@ -103,12 +103,21 @@ Puppet::Type.type(:service).provide :launchd, :parent => :base do def status # launchctl list <jobname> exits zero if the job is loaded - # and non-zero if it isn't. Simple way to check... + # and non-zero if it isn't. Simple way to check... but is only + # available on OS X 10.5 unfortunately, so we grab the whole list + # and check if our resource is included. The output formats differ + # between 10.4 and 10.5, thus the necessity for splitting begin - launchctl :list, resource[:name] - return :running - rescue Puppet::ExecutionFailure + output = launchctl :list + if output.nil? + raise Puppet::Error.new("launchctl list failed to return any data.") + end + output.split("\n").each do |j| + return :running if j.split(/\s/).last == resource[:name] + end return :stopped + rescue Puppet::ExecutionFailure + raise Puppet::Error.new("Unable to determine status of #{resource[:name]}") end end |