package main import ( "bufio" "fmt" "os" "runtime" "strings" "time" "github.com/shirou/gopsutil/v3/cpu" "github.com/shirou/gopsutil/v3/mem" ) func linuxID() string { f, err := os.Open("/etc/os-release") if err != nil { return "" } defer f.Close() sc := bufio.NewScanner(f) for sc.Scan() { line := sc.Text() if strings.HasPrefix(line, "ID=") { val := strings.TrimPrefix(line, "ID=") val = strings.Trim(val, `"`) return strings.ToLower(val) } } return "" } func isSupported() bool { switch runtime.GOOS { case "darwin": return true case "linux": id := linuxID() return id == "ubuntu" || id == "arch" default: return false } } func main() { if !isSupported() { return } values, err := cpu.Percent(400*time.Millisecond, false) if err != nil || len(values) == 0 { return } vm, err := mem.VirtualMemory() if err != nil { return } fmt.Printf("CPU %.0f%% | RAM %.0f%%", values[0], vm.UsedPercent) }