def self.dmi_find_system_info(name)
splitstr= Facter.value(:kernel) == 'SunOS' ? "ID SIZE TYPE" : /^Handle/
output = self.get_dmi_table()
return if output.nil?
name.each_pair do |key,v|
v.each do |v2|
v2.each_pair do |value,facterkey|
output.split(splitstr).each do |line|
if line =~ /#{key}/ and line =~ /\n\s+#{value} (.+)\n/
result = $1.strip
Facter.add(facterkey) do
confine :kernel => [ :linux, :freebsd, :netbsd, :sunos, "gnu/kfreebsd""gnu/kfreebsd", :dragonfly ]
setcode do
result
end
end
end
end
end
end
end
end