summaryrefslogtreecommitdiffstats
path: root/lib/facter/manufacturer.rb
blob: 4f2df98d866e3ba1298b6f2c3a50de7a745a7ffb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# manufacturer.rb
# Facts related to hardware manufacturer
#
#

require 'facter/util/manufacturer'

if Facter.value(:kernel) == "OpenBSD"
    mfg_keys = {
        'hw.vendor'   => 'manufacturer',
        'hw.product'  => 'productname',
        'hw.serialno' => 'serialnumber'
    }

    Facter::Manufacturer.sysctl_find_system_info(mfg_keys)
elsif Facter.value(:kernel) == "SunOS" and Facter.value(:hardwareisa) == "sparc"
    Facter::Manufacturer.prtdiag_sparc_find_system_info()
elsif Facter.value(:kernel) == "windows"
    win32_keys = {
        'manufacturer' => ['Manufacturer', 'Bios'],
        'serialNumber' => ['Serialnumber', 'Bios'],
        'productname'  => ['Name', 'ComputerSystemProduct']
    }
    Facter::Manufacturer.win32_find_system_info(win32_keys)
else
    query = {
        '[Ss]ystem [Ii]nformation' => [
            { 'Manufacturer:'      => 'manufacturer' },
            { 'Product(?: Name)?:' => 'productname' },
            { 'Serial Number:'     => 'serialnumber' }
        ],
        '(Chassis Information|system enclosure or chassis)' => [
            { '(?:Chassis )?Type:' => 'type' }
        ]
    }

    Facter::Manufacturer.dmi_find_system_info(query)
end