more readable logo detection

This commit is contained in:
nekohepott 2026-06-17 04:16:28 +03:00
parent 8900e9cc20
commit abcbb0eed6
No known key found for this signature in database

View File

@ -4,8 +4,10 @@ import (
"fmt"
"os"
"os/exec"
"path"
"path/filepath"
"regexp"
"slices"
"strings"
"unicode/utf8"
)
@ -13,58 +15,19 @@ import (
var ansiEscapeRe = regexp.MustCompile(`\x1b\[[0-9;?]*[ -/]*[@-~]`)
func GetLogo(id string) string {
switch {
case strings.HasPrefix(id, "arch"):
return "logos/arch.png"
case strings.HasPrefix(id, "nixos"):
return "logos/nixos.png"
case strings.HasPrefix(id, "debian"):
return "logos/debian.png"
case strings.HasPrefix(id, "ubuntu"):
return "logos/ubuntu.png"
case strings.HasPrefix(id, "pop"):
return "logos/pop.png"
case strings.HasPrefix(id, "fedora"):
return "logos/fedora.png"
case strings.HasPrefix(id, "manjaro"):
return "logos/manjaro.png"
case strings.HasPrefix(id, "alpine"):
return "logos/alpine.png"
case strings.HasPrefix(id, "gentoo"):
return "logos/gentoo.png"
case strings.HasPrefix(id, "void"):
return "logos/void.png"
case strings.HasPrefix(id, "opensuse"):
return "logos/opensuse.png"
case strings.HasPrefix(id, "linuxmint"):
return "logos/mint.png"
case strings.HasPrefix(id, "kali"):
return "logos/kali.png"
case strings.HasPrefix(id, "cachyos"):
return "logos/cachyos.png"
case strings.HasPrefix(id, "endevaouros"):
return "logos/endevaouros.png"
case strings.HasPrefix(id, "artix"):
return "logos/artix.png"
case strings.HasPrefix(id, "chimera"):
return "logos/chimera.png"
default:
return "logos/linux.png"
knownIDs := []string{"arch", "nixos", "debian", "alpine", "gentoo", "void", "chimera", "cachyos", "artix", "endeavouros", "fedora", "kali", "linuxmint", "manjaro", "ubuntu", "opensuse"}
if slices.Contains(knownIDs, id) {
return path.Join("logos", id+".png")
}
return "logos/linux.png"
}
func GetAscii(id string) string {
switch {
case strings.HasPrefix(id, "arch"):
return "logos/arch.txt"
case strings.HasPrefix(id, "nixos"):
return "logos/nixos.txt"
case strings.HasPrefix(id, "debian"):
return "logos/debian.txt"
default:
return "logos/linux.txt"
knownIDs := []string{"arch", "nixos", "debian"}
if slices.Contains(knownIDs, id) {
return path.Join("ascii", id+".txt")
}
return "ascii/linux.txt"
}
func PrintAsciiLogo(path string) string {