go.mondoo.com/cnquery@v0.0.0-20231005093811-59568235f6ea/providers/os/id/platformid/manager.go (about) 1 // Copyright (c) Mondoo, Inc. 2 // SPDX-License-Identifier: BUSL-1.1 3 4 package platformid 5 6 import ( 7 "go.mondoo.com/cnquery/providers-sdk/v1/inventory" 8 "go.mondoo.com/cnquery/providers/os/connection/shared" 9 ) 10 11 type UniquePlatformIDProvider interface { 12 Name() string 13 ID() (string, error) 14 } 15 16 func MachineIDProvider(conn shared.Connection, platform *inventory.Platform) (UniquePlatformIDProvider, error) { 17 var uuidProvider UniquePlatformIDProvider 18 for i := range platform.Family { 19 if platform.Family[i] == "linux" { 20 uuidProvider = &LinuxIdProvider{connection: conn} 21 } 22 } 23 24 if uuidProvider == nil && platform.Name == "macos" { 25 uuidProvider = &MacOSIdProvider{connection: conn} 26 } else if uuidProvider == nil && platform.Name == "windows" { 27 uuidProvider = &WinIdProvider{connection: conn} 28 } 29 30 return uuidProvider, nil 31 }