diff options
author | Nick Lewis <nick@puppetlabs.com> | 2010-10-04 15:23:02 -0700 |
---|---|---|
committer | James Turnbull <james@lovedthanlost.net> | 2010-11-10 06:24:01 +1100 |
commit | 4cbceab68f3d84b322d9b78ddb95c34615906bb9 (patch) | |
tree | a3f2a36066e281f78c86d73a4b903c6b13c5a395 /lib/puppet | |
parent | 06c8748cbfed67b2440e11577a52f60c43277217 (diff) | |
download | puppet-4cbceab68f3d84b322d9b78ddb95c34615906bb9.tar.gz puppet-4cbceab68f3d84b322d9b78ddb95c34615906bb9.tar.xz puppet-4cbceab68f3d84b322d9b78ddb95c34615906bb9.zip |
(#4573) FreeBSD service provider now supports versions <7 and >8
Running "/etc/rc.d/SERVICE rcvar" outputs different formats for
different versions of FreeBSD. This patch adds support for those
formats, as well as tests.
Based on patches from:
o Joost van Beurden
o Russell Jackson
Paired-With: Matt Robinson
Diffstat (limited to 'lib/puppet')
-rw-r--r-- | lib/puppet/provider/service/freebsd.rb | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/puppet/provider/service/freebsd.rb b/lib/puppet/provider/service/freebsd.rb index c75c3c9ab..f8c7134f0 100644 --- a/lib/puppet/provider/service/freebsd.rb +++ b/lib/puppet/provider/service/freebsd.rb @@ -18,6 +18,9 @@ Puppet::Type.type(:service).provide :freebsd, :parent => :init do def rcvar rcvar = execute([self.initscript, :rcvar], :failonfail => true, :squelch => false) rcvar = rcvar.split("\n") + rcvar.delete_if {|str| str =~ /^#\s*$/} + rcvar[1] = rcvar[1].gsub(/^\$/, '') + rcvar end # Extract service name @@ -44,7 +47,7 @@ Puppet::Type.type(:service).provide :freebsd, :parent => :init do def rcvar_value value = self.rcvar[1] self.error("No rcvar value found in rcvar") if value.nil? - value = value.gsub!(/(.*)_enable=\"?(.*)\"?/, '\2') + value = value.gsub!(/(.*)_enable="?(\w+)"?/, '\2') self.error("rcvar value is empty") if value.nil? self.debug("rcvar value is #{value}") value |