add fix for fuckOS

This commit is contained in:
nekohepott 2026-06-17 04:16:26 +03:00
parent 01345b0344
commit 203e966106
No known key found for this signature in database

65
main.go
View File

@ -12,6 +12,7 @@ import (
"regexp" "regexp"
"strconv" "strconv"
"strings" "strings"
"time"
) )
const ( const (
@ -21,13 +22,6 @@ const (
var dist string var dist string
var logoMap = map[string]string{
"Arch Linux": "logos/arch.png",
"Debian": "logos/debian.png",
"NixOS": "logos/nixos.png",
"default": "logos/linux.png",
}
func getDist() string { func getDist() string {
f, _ := os.Open("/etc/os-release") f, _ := os.Open("/etc/os-release")
defer func(f *os.File) { defer func(f *os.File) {
@ -192,25 +186,18 @@ func getPkgs() string {
return "unknown" return "unknown"
} }
//func getAscii() string { func getLogo(dist string) string {
// var ascii string switch {
// if strings.HasPrefix(dist, "Arch") { case strings.HasPrefix(dist, "Arch"):
// content := " _ _ _\n /\\ | | | | (_)\n / \\ _ __ ___| |__ | | _ _ __ _ ___ __\n / /\\ \\ | '__/ __| '_ \\ | | | | '_ \\| | | \\ \\/ /\n / ____ \\| | | (__| | | | | |____| | | | | |_| |> <\n /_/ \\_\\_| \\___|_| |_| |______|_|_| |_|\\__,_/_/\\_\\\n" return "logos/arch.png"
// ascii = fmt.Sprintf(content) case strings.HasPrefix(dist, "NixOS"):
// return ascii return "logos/nixos.png"
// } case strings.HasPrefix(dist, "Debian"):
// if strings.HasPrefix(dist, "Debian") { return "logos/debian.png"
// content := " _____ _ _\n | __ \\ | | (_)\n | | | | ___ | |__ _ __ _ _ __\n | | | | / _ \\ | '_ \\ | | / _` | | '_ \\\n | |__| | | __/ | |_) | | | | (_| | | | | |\n |_____/ \\___| |_.__/ |_| \\__,_| |_| |_|\n" default:
// ascii = fmt.Sprintf(content) return "logos/linux.png"
// return ascii }
// } }
// if strings.HasPrefix(dist, "NixOS") {
// content := " _ _ _ ____ _____\n | \\ | (_) / __ \\ / ____|\n | \\| |___ _| | | | (___\n | . ` | \\ \\/ / | | |\\___ \\\n | |\\ | |> <| |__| |____) |\n |_| \\_|_/_/\\_\\\\____/|_____/\n"
// ascii = fmt.Sprintf(content)
// return ascii
// }
// return "unknown"
//}
func printLogo(path string, width uint) { func printLogo(path string, width uint) {
cols := width / 8 cols := width / 8
@ -263,12 +250,23 @@ func getDE() string {
} }
func getUptime() string { func getUptime() string {
out, err := exec.Command("sh", "-c", "uptime -p").Output() data, err := os.ReadFile("/proc/uptime")
if err != nil { if err != nil {
return "Unknown" return "0"
} }
uptime := strings.TrimPrefix(string(out), "up ") uptimeStr := strings.Fields(string(data))[0]
return strings.TrimSpace(uptime) seconds, err := strconv.ParseFloat(uptimeStr, 64)
if err != nil {
_, err := fmt.Fprintf(os.Stderr, "Error: %v\n", err)
if err != nil {
return "error printing uptime"
}
return ""
}
d := time.Duration(seconds) * time.Second
formatted := d.Round(time.Second).String()
spaced := strings.NewReplacer("h", "h ", "m", "m ", "s", "s ").Replace(formatted)
return spaced
} }
func main() { func main() {
@ -277,12 +275,9 @@ func main() {
Value string Value string
} }
dist := getDist() dist := getDist()
defaultLogo, ok := logoMap[dist] logo := getLogo(dist)
if !ok {
defaultLogo = logoMap["default"]
}
absoluteDefaultLogo := getAbsLogoPath(defaultLogo) absoluteDefaultLogo := getAbsLogoPath(logo)
stats := []Info{ stats := []Info{
{"dist", dist}, {"dist", dist},