hostinfo: retrieve OS version for Macs running the OSS client

Updates #18520

Change-Id: If86a1f702c704b003002aa7e2f5a6b1418b469cc
Signed-off-by: Alex Chan <alexc@tailscale.com>
pull/16839/merge
Alex Chan 12 hours ago committed by Alex Chan
parent 6de5b01e04
commit ae62569159

@ -8,14 +8,31 @@ package hostinfo
import (
"os"
"path/filepath"
"golang.org/x/sys/unix"
"tailscale.com/types/ptr"
)
func init() {
osVersion = lazyOSVersion.Get
packageType = packageTypeDarwin
}
var (
lazyOSVersion = &lazyAtomicValue[string]{f: ptr.To(osVersionDarwin)}
)
func packageTypeDarwin() string {
// Using tailscaled or IPNExtension?
exe, _ := os.Executable()
return filepath.Base(exe)
}
// Returns the marketing version (e.g., "15.0.1" or "26.0.0")
func osVersionDarwin() string {
version, err := unix.Sysctl("kern.osproductversion")
if err != nil {
return ""
}
return version
}

Loading…
Cancel
Save