From 75e97a09f6ebb0692902c8afb7fda74a665f1857 Mon Sep 17 00:00:00 2001 From: nekohepott Date: Wed, 17 Jun 2026 04:46:20 +0300 Subject: [PATCH] fix: handle error in Scanner MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit костыль тот ещё --- src/main.go | 9 ++++++--- src/providers/systemstats.go | 35 ++++++++++++++++++++++------------- 2 files changed, 28 insertions(+), 16 deletions(-) diff --git a/src/main.go b/src/main.go index 12a2c83..0ea8a06 100644 --- a/src/main.go +++ b/src/main.go @@ -33,7 +33,10 @@ func main() { fmt.Println("Warning: No layout specified in config, using default") } - distID, prettyName := providers.GetDist() + distID, prettyName, err := providers.GetDist() + if err != nil { + fmt.Println(err) + } var defaultLogo string if conf.CustomLogo != "" { @@ -74,9 +77,9 @@ func main() { statProviders := map[string]statProvider{ "host": {label: "host", fn: providers.GetHostname}, "dist": {label: "os", fn: func() string { return prettyName }}, - "cpu": {label: "cpu", fn: providers.GetCpu}, + "cpu": {label: "ram", fn: func() string { v, _ := providers.GetCpu(); return v }}, "krnl": {label: "kernel", fn: providers.GetKernel}, - "ram": {label: "ram", fn: providers.GetRam}, + "ram": {label: "ram", fn: func() string { v, _ := providers.GetRam(); return v }}, "gpu": {label: "gpu", fn: providers.GetGpu}, "de/wm": {label: "de/wm", fn: providers.GetDE}, "pkgs": {label: "packages", fn: providers.GetPkgs}, diff --git a/src/providers/systemstats.go b/src/providers/systemstats.go index 3df700b..57daa6f 100644 --- a/src/providers/systemstats.go +++ b/src/providers/systemstats.go @@ -17,7 +17,7 @@ var id, prettyName string const gpuCacheFile = "/tmp/gogofetch_gpu_cache" -func GetDist() (string, string) { +func GetDist() (string, string, error) { f, _ := os.Open("/etc/os-release") defer func(f *os.File) { err := f.Close() @@ -39,10 +39,13 @@ func GetDist() (string, string) { prettyName = strings.ReplaceAll(prettyName, "'", "") } } - if id == "" && prettyName == "" { - return "unknown", "unknown" + if err := s.Err(); err != nil { + return "", "", fmt.Errorf("reading input: %w", err) } - return id, prettyName + if id == "" && prettyName == "" { + return "unknown", "unknown", nil + } + return id, prettyName, nil } func getSizeRam(total, avaible, used *int) string { @@ -62,10 +65,10 @@ func getSizeRam(total, avaible, used *int) string { return fmt.Sprintf("%d / %d MiB", *used, totalMB) } -func GetRam() string { +func GetRam() (string, error) { f, err := os.Open("/proc/meminfo") if err != nil { - return "error" + return "", err } defer f.Close() @@ -77,27 +80,30 @@ func GetRam() string { if strings.HasPrefix(line, "MemTotal:") { _, err2 := fmt.Sscanf(line, "MemTotal: %d kB", &total) if err2 != nil { - return "" + return "", err } } if strings.HasPrefix(line, "MemAvailable:") { _, err := fmt.Sscanf(line, "MemAvailable: %d kB", &available) if err != nil { - return "" + return "", err } } } + if err := s.Err(); err != nil { + return "", fmt.Errorf("reading input: %w", err) + } ram := getSizeRam(&total, &available, &used) ram = strings.TrimSpace(ram) - return ram + return ram, nil } -func GetCpu() string { +func GetCpu() (string, error) { f, err := os.Open("/proc/cpuinfo") if err != nil { - return "unknown" + return "unknown", err } defer f.Close() @@ -110,12 +116,15 @@ func GetCpu() string { parts := strings.SplitN(line, ":", 2) if len(parts) > 1 { cpu := strings.TrimSpace(parts[1]) - return cpu + return cpu, nil } } } + if err := s.Err(); err != nil { + return "", fmt.Errorf("reading input: %w", err) + } - return strings.TrimSpace(cpu) + return strings.TrimSpace(cpu), nil } func readGpuCache() (string, bool) {