Files
tailscale/hostinfo/hostinfo_darwin.go
Alex Chan ae62569159 hostinfo: retrieve OS version for Macs running the OSS client
Updates #18520

Change-Id: If86a1f702c704b003002aa7e2f5a6b1418b469cc
Signed-off-by: Alex Chan <alexc@tailscale.com>
2026-01-27 15:51:07 +00:00

39 lines
700 B
Go

// Copyright (c) Tailscale Inc & contributors
// SPDX-License-Identifier: BSD-3-Clause
//go:build darwin
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
}