Sha256: 251c78244c08271a608d136d5cd89a07ec75618c2154d9e1058c9ce841f72255

Contents?: true

Size: 1.32 KB

Versions: 2

Compression:

Stored size: 1.32 KB

Contents

# mamufacturer.rb
# Support methods for manufacturer specific facts

module Facter::Manufacturer
	def self.dmi_find_system_info(name)
		splitstr="Handle"
		case Facter.value(:kernel)
			when 'Linux'
				return nil unless FileTest.exists?("/usr/sbin/dmidecode")
		
				output=%x{/usr/sbin/dmidecode 2>/dev/null}
			when 'OpenBSD', 'FreeBSD'
				return nil unless FileTest.exists?("/usr/local/sbin/dmidecode")
		
				output=%x{/usr/local/sbin/dmidecode 2>/dev/null}
			when 'NetBSD'
				return nil unless FileTest.exists?("/usr/pkg/sbin/dmidecode")

				output=%x{/usr/pkg/sbin/dmidecode 2>/dev/null}
			when 'SunOS'
				return nil unless FileTest.exists?("/usr/sbin/smbios")
				splitstr="ID    SIZE TYPE"
				output=%x{/usr/sbin/smbios 2>/dev/null}

            else
                return
		end
		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 =~ /#{value} 0x\d+ \(([-\w].*)\)\n*./ or line =~ /#{value} ([-\w].*)\n*./ )
                                                result = $1
							Facter.add(facterkey) do
								confine :kernel => [ :linux, :freebsd, :netbsd, :openbsd, :sunos ]
							setcode do
							    result
						        end
					        end
				        end
			        end
		        end
	        end
        end
    end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
facter-1.5.4 lib/facter/util/manufacturer.rb
facter-1.5.3 lib/facter/util/manufacturer.rb