//go:build windows // +build windows package packagemanager import ( "fmt" "golang.org/x/sys/windows/registry" ) func platformInfoWin() (*OS, error) { var result OS result.ID = "Unknown" result.Name = "Windows" result.Version = "Unknown" key, _ := registry.OpenKey(registry.LOCAL_MACHINE, `SOFTWARE\Microsoft\Windows NT\CurrentVersion`, registry.QUERY_VALUE) productName, _, _ := key.GetStringValue("ProductName") currentBuild, _, _ := key.GetStringValue("CurrentBuildNumber") displayVersion, _, _ := key.GetStringValue("DisplayVersion") releaseId, _, _ := key.GetStringValue("ReleaseId") result.Name = productName result.Version = fmt.Sprintf("%s (Build: %s)", releaseId, currentBuild) result.ID = displayVersion return &result, key.Close() }