Prevent OpenBSD service provider crashing if rc.conf.local file does not exist.
This commit is contained in:
parent
75e8924611
commit
3f64b852f8
1 changed files with 21 additions and 13 deletions
|
@ -28,12 +28,14 @@ Puppet::Type.type(:service).provide :openbsd, :parent => :base do
|
||||||
|
|
||||||
def rcvar_local
|
def rcvar_local
|
||||||
name = @resource[:name]
|
name = @resource[:name]
|
||||||
|
if File.file?(rcconf_local)
|
||||||
File.open(rcconf_local).each do |line|
|
File.open(rcconf_local).each do |line|
|
||||||
if line =~ /^#{name}(_flags)?=/
|
if line =~ /^#{name}(_flags)?=/
|
||||||
line = line.sub(/#.*/, "")
|
line = line.sub(/#.*/, "")
|
||||||
return line.strip.split("=", 2)
|
return line.strip.split("=", 2)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
end
|
||||||
nil
|
nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -52,11 +54,13 @@ Puppet::Type.type(:service).provide :openbsd, :parent => :base do
|
||||||
end
|
end
|
||||||
|
|
||||||
def pkg_scripts
|
def pkg_scripts
|
||||||
|
if File.file?(rcconf_local)
|
||||||
File.open(rcconf_local).each do |line|
|
File.open(rcconf_local).each do |line|
|
||||||
if line =~ /^pkg_scripts=/
|
if line =~ /^pkg_scripts=/
|
||||||
return line.strip.gsub(/pkg_scripts="?([^"]*)"?/, '\1').split
|
return line.strip.gsub(/pkg_scripts="?([^"]*)"?/, '\1').split
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
end
|
||||||
Array.new
|
Array.new
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -84,10 +88,12 @@ Puppet::Type.type(:service).provide :openbsd, :parent => :base do
|
||||||
start = @resource[:start]
|
start = @resource[:start]
|
||||||
binary = @resource[:binary]
|
binary = @resource[:binary]
|
||||||
s = ""
|
s = ""
|
||||||
|
if File.file?(rcconf_local)
|
||||||
File.open(rcconf_local).each do |line|
|
File.open(rcconf_local).each do |line|
|
||||||
next if line =~ /^(#{rcvar_name}|pkg_scripts)=/
|
next if line =~ /^(#{rcvar_name}|pkg_scripts)=/
|
||||||
s += line
|
s += line
|
||||||
end
|
end
|
||||||
|
end
|
||||||
unless start.nil?
|
unless start.nil?
|
||||||
if binary.nil?
|
if binary.nil?
|
||||||
rcvar_value = start[/^\S+\s*(.*)/, 1]
|
rcvar_value = start[/^\S+\s*(.*)/, 1]
|
||||||
|
@ -111,10 +117,12 @@ Puppet::Type.type(:service).provide :openbsd, :parent => :base do
|
||||||
rcvar_name = self.rcvar_name
|
rcvar_name = self.rcvar_name
|
||||||
pkg_scripts = self.pkg_scripts
|
pkg_scripts = self.pkg_scripts
|
||||||
s = ""
|
s = ""
|
||||||
|
if File.file?(rcconf_local)
|
||||||
File.open(rcconf_local).each do |line|
|
File.open(rcconf_local).each do |line|
|
||||||
next if line =~ /^(#{rcvar_name}|pkg_scripts)=/
|
next if line =~ /^(#{rcvar_name}|pkg_scripts)=/
|
||||||
s += line
|
s += line
|
||||||
end
|
end
|
||||||
|
end
|
||||||
s += "%s=NO\n" % rcvar_name unless rcvar.nil?
|
s += "%s=NO\n" % rcvar_name unless rcvar.nil?
|
||||||
pkg_scripts.delete(name)
|
pkg_scripts.delete(name)
|
||||||
s += "pkg_scripts=\"%s\"\n" % pkg_scripts.join(" ")
|
s += "pkg_scripts=\"%s\"\n" % pkg_scripts.join(" ")
|
||||||
|
|
Loading…
Add table
Reference in a new issue