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  }