github.com/AlpineAIO/wails/v2@v2.0.0-beta.32.0.20240505041856-1047a8fa5fef/internal/system/operatingsystem/os_darwin.go (about) 1 package operatingsystem 2 3 import ( 4 "strings" 5 6 "github.com/AlpineAIO/wails/v2/internal/shell" 7 ) 8 9 func getSysctlValue(key string) (string, error) { 10 stdout, _, err := shell.RunCommand(".", "sysctl", key) 11 if err != nil { 12 return "", err 13 } 14 version := strings.TrimPrefix(stdout, key+": ") 15 return strings.TrimSpace(version), nil 16 } 17 18 func platformInfo() (*OS, error) { 19 // Default value 20 var result OS 21 result.ID = "Unknown" 22 result.Name = "MacOS" 23 result.Version = "Unknown" 24 25 version, err := getSysctlValue("kern.osproductversion") 26 if err != nil { 27 return nil, err 28 } 29 result.Version = version 30 ID, err := getSysctlValue("kern.osversion") 31 if err != nil { 32 return nil, err 33 } 34 result.ID = ID 35 36 // cmd := CreateCommand(directory, command, args...) 37 // var stdo, stde bytes.Buffer 38 // cmd.Stdout = &stdo 39 // cmd.Stderr = &stde 40 // err := cmd.Run() 41 // return stdo.String(), stde.String(), err 42 // } 43 // sysctl := shell.NewCommand("sysctl") 44 // kern.ostype: Darwin 45 // kern.osrelease: 20.1.0 46 // kern.osrevision: 199506 47 48 return &result, nil 49 }