reduce subprocess calls, more unified returns

This commit is contained in:
nekohepott 2026-06-17 04:16:27 +03:00
parent 91a413584c
commit 33651685aa
No known key found for this signature in database

View File

@ -75,7 +75,7 @@ func GetRam() string {
func GetCpu() string { func GetCpu() string {
f, err := os.Open("/proc/cpuinfo") f, err := os.Open("/proc/cpuinfo")
if err != nil { if err != nil {
return "error" return "unknown"
} }
var cpu string var cpu string
@ -97,7 +97,7 @@ func GetCpu() string {
func GetGpu() 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() 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 { if err != nil || len(out) == 0 {
return "Unknown GPU" return "unknown GPU"
} }
lines := strings.Split(strings.TrimSpace(string(out)), "\n") lines := strings.Split(strings.TrimSpace(string(out)), "\n")
@ -154,24 +154,31 @@ func cleanGpuString(raw string) string {
} }
func GetKernel() string { func GetKernel() string {
out, err := exec.Command("sh", "-c", "uname -r").Output() out, err := os.ReadFile("/proc/version")
if err != nil { 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 { func GetHostname() string {
hostname, err := exec.Command("sh", "-c", "uname -n").Output() hostname, err := os.ReadFile("/etc/hostname")
if err != nil { if err != nil {
return "Error getting hostname, awful" return "unknown"
} }
username, errUser := exec.Command("sh", "-c", "whoami").Output() username := os.Getenv("USER")
if errUser != nil { if username == "" {
return "Error getting username, nobody here but us chickens!" username = os.Getenv("LOGNAME")
} }
fullHostname := fmt.Sprintf("%s@%s", strings.TrimSpace(string(username)), strings.TrimSpace(string(hostname))) if username == "" {
return fullHostname return "unknown"
}
return fmt.Sprintf("%s@%s", username, strings.TrimSpace(string(hostname)))
} }
func GetTerminal() string { func GetTerminal() string {
@ -181,7 +188,7 @@ func GetTerminal() string {
func GetDE() string { func GetDE() string {
de := os.Getenv("XDG_CURRENT_DESKTOP") de := os.Getenv("XDG_CURRENT_DESKTOP")
if de == "" { if de == "" {
return "Unknown or w/o GUI" return "unknown or w/o GUI"
} }
return strings.TrimSpace(de) return strings.TrimSpace(de)
} }