From a44d6c3cbf21e5b6942d8756684ab865204533f8 Mon Sep 17 00:00:00 2001 From: James Turnbull Date: Sat, 21 Jun 2008 12:49:46 +1000 Subject: Fixes #1378 - update manufacter.rb facts to support BSD --- lib/facter/util/manufacturer.rb | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/lib/facter/util/manufacturer.rb b/lib/facter/util/manufacturer.rb index b48ffc7..33ef942 100644 --- a/lib/facter/util/manufacturer.rb +++ b/lib/facter/util/manufacturer.rb @@ -3,16 +3,23 @@ module Facter::Manufacturer def self.dmi_find_system_info(name) - return nil unless FileTest.exists?("/usr/sbin/dmidecode") - - output=%x{/usr/sbin/dmidecode 2>/dev/null} + case Facter.value(:kernel) + when 'Linux' + return nil unless FileTest.exists?("/usr/sbin/dmidecode") + + output=%x{/usr/sbin/dmidecode 2>/dev/null} + when 'OpenBSD', 'NetBSD', 'FreeBSD' + return nil unless FileTest.exists?("/usr/local/sbin/dmidecode") + + output=%x{/usr/local/sbin/dmidecode 2>/dev/null} + end name.each_pair do |key,v| v.each do |value| output.split("Handle").each do |line| if line =~ /#{key}/ and line =~ /#{value} (\w.*)\n*./ result = $1 Facter.add(value.chomp(':').gsub(' ','')) do - confine :kernel => :linux + confine :kernel => [ :linux, :freebsd, :netbsd, :openbsd ] setcode do result end -- cgit