mirror of
https://github.com/jimeh/build-emacs-for-macos.git
synced 2026-02-19 07:16:39 +00:00
41 lines
718 B
Go
41 lines
718 B
Go
package osinfo
|
|
|
|
import (
|
|
"os/exec"
|
|
"strings"
|
|
)
|
|
|
|
type OSInfo struct {
|
|
Name string `yaml:"name"`
|
|
Version string `yaml:"version"`
|
|
Arch string `yaml:"arch"`
|
|
}
|
|
|
|
func New() (*OSInfo, error) {
|
|
version, err := exec.Command("sw_vers", "-productVersion").CombinedOutput()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
arch, err := exec.Command("uname", "-m").CombinedOutput()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return &OSInfo{
|
|
Name: "macOS",
|
|
Version: strings.TrimSpace(string(version)),
|
|
Arch: strings.TrimSpace(string(arch)),
|
|
}, nil
|
|
}
|
|
|
|
func (s *OSInfo) MajorMinor() string {
|
|
parts := strings.Split(s.Version, ".")
|
|
max := len(parts)
|
|
if max > 2 {
|
|
max = 2
|
|
}
|
|
|
|
return strings.Join(parts[0:max], ".")
|
|
}
|