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