mirror of
https://wget.la/https://github.com/leookun/cursor-byok
synced 2026-08-18 03:57:06 +08:00
v0.3.8
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
package ads
|
||||
|
||||
import (
|
||||
"os"
|
||||
"os/exec"
|
||||
"runtime"
|
||||
"strings"
|
||||
"time"
|
||||
)
|
||||
|
||||
func displayOSName() string {
|
||||
switch runtime.GOOS {
|
||||
case "darwin":
|
||||
return "macOS"
|
||||
case "linux":
|
||||
return "Linux"
|
||||
default:
|
||||
return "Windows"
|
||||
}
|
||||
}
|
||||
|
||||
func displayOSVersion() string {
|
||||
switch runtime.GOOS {
|
||||
case "darwin":
|
||||
return commandOutput(2*time.Second, "sw_vers", "-productVersion")
|
||||
case "linux":
|
||||
if version := linuxPrettyName(); version != "" {
|
||||
return version
|
||||
}
|
||||
return commandOutput(2*time.Second, "uname", "-r")
|
||||
default:
|
||||
return ""
|
||||
}
|
||||
}
|
||||
|
||||
func commandOutput(timeout time.Duration, name string, args ...string) string {
|
||||
cmd := exec.Command(name, args...)
|
||||
timer := time.AfterFunc(timeout, func() {
|
||||
if cmd.Process != nil {
|
||||
_ = cmd.Process.Kill()
|
||||
}
|
||||
})
|
||||
defer timer.Stop()
|
||||
output, err := cmd.Output()
|
||||
if err != nil {
|
||||
return ""
|
||||
}
|
||||
return strings.TrimSpace(string(output))
|
||||
}
|
||||
|
||||
func linuxPrettyName() string {
|
||||
data, err := os.ReadFile("/etc/os-release")
|
||||
if err != nil {
|
||||
return ""
|
||||
}
|
||||
for _, line := range strings.Split(string(data), "\n") {
|
||||
key, value, ok := strings.Cut(line, "=")
|
||||
if !ok || strings.TrimSpace(key) != "PRETTY_NAME" {
|
||||
continue
|
||||
}
|
||||
return strings.Trim(strings.TrimSpace(value), `"`)
|
||||
}
|
||||
return ""
|
||||
}
|
||||
Reference in New Issue
Block a user