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 {
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)
}