From 33651685aa32561fc9f5174c139570e7232fd4de Mon Sep 17 00:00:00 2001 From: nekohepott Date: Wed, 17 Jun 2026 04:16:27 +0300 Subject: [PATCH] reduce subprocess calls, more unified returns --- src/providers/systemstats.go | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/src/providers/systemstats.go b/src/providers/systemstats.go index 3f996f0..39a3d2a 100644 --- a/src/providers/systemstats.go +++ b/src/providers/systemstats.go @@ -75,7 +75,7 @@ func GetRam() string { func GetCpu() string { f, err := os.Open("/proc/cpuinfo") if err != nil { - return "error" + return "unknown" } var cpu string @@ -97,7 +97,7 @@ func GetCpu() string { func GetGpu() string { out, err := exec.Command("sh", "-c", `lspci -mm | awk -F'"' '$2=="VGA compatible controller" || $2=="3D controller" || $2=="Display controller"'`).Output() if err != nil || len(out) == 0 { - return "Unknown GPU" + return "unknown GPU" } lines := strings.Split(strings.TrimSpace(string(out)), "\n") @@ -154,24 +154,31 @@ func cleanGpuString(raw string) string { } func GetKernel() string { - out, err := exec.Command("sh", "-c", "uname -r").Output() + out, err := os.ReadFile("/proc/version") if err != nil { - return "Error getting kernel, how did we get there?" + return "unknown" } - return strings.TrimSpace(string(out)) + str := strings.TrimSpace(string(out)) + str = strings.ReplaceAll(str, " version ", " ") + if idx := strings.Index(str, "("); idx != -1 { + str = str[:idx] + } + return strings.TrimSpace(str) } func GetHostname() string { - hostname, err := exec.Command("sh", "-c", "uname -n").Output() + hostname, err := os.ReadFile("/etc/hostname") if err != nil { - return "Error getting hostname, awful" + return "unknown" } - username, errUser := exec.Command("sh", "-c", "whoami").Output() - if errUser != nil { - return "Error getting username, nobody here but us chickens!" + username := os.Getenv("USER") + if username == "" { + username = os.Getenv("LOGNAME") } - fullHostname := fmt.Sprintf("%s@%s", strings.TrimSpace(string(username)), strings.TrimSpace(string(hostname))) - return fullHostname + if username == "" { + return "unknown" + } + return fmt.Sprintf("%s@%s", username, strings.TrimSpace(string(hostname))) } func GetTerminal() string { @@ -181,7 +188,7 @@ func GetTerminal() string { func GetDE() string { de := os.Getenv("XDG_CURRENT_DESKTOP") if de == "" { - return "Unknown or w/o GUI" + return "unknown or w/o GUI" } return strings.TrimSpace(de) }