refactor package count logic again (more clean code(по заветам melvi))

This commit is contained in:
nekohepott 2026-06-17 04:16:27 +03:00
parent bc28808baf
commit 88a82697dd
No known key found for this signature in database

View File

@ -11,116 +11,28 @@ func pathExists(path string) bool {
return err == nil return err == nil
} }
func getNixOS() string { func getPmPackages(packagerName string, packagerPath string) string {
if pathExists("/nix/store") { if pathExists(packagerPath) {
pkgs, err := os.ReadDir("/nix/store") pkgs, err := os.ReadDir(packagerPath)
if err != nil { if err != nil {
return "error reading /nix/store" return "error reading " + packagerPath
} }
return strconv.Itoa(len(pkgs)) + " (nix)" return strconv.Itoa(len(pkgs)) + " (" + packagerName + ")"
}
return ""
}
func getPacman() string {
if pathExists("/var/lib/pacman/local") {
pkgs, err := os.ReadDir("/var/lib/pacman/local")
if err != nil {
return "error reading /var/lib/pacman/local"
}
return strconv.Itoa(len(pkgs)-1) + " (pacman)"
}
return ""
}
func getApt() string {
if pathExists("/var/lib/apt") {
pkgs, err := os.ReadDir("/var/lib/apt")
if err != nil {
return "error reading /var/lib/apt"
}
return strconv.Itoa(len(pkgs)) + " (apt)"
}
return ""
}
func getDnf() string {
if pathExists("/var/lib/dnf") {
pkgs, err := os.ReadDir("/var/lib/dnf")
if err != nil {
return "error reading /var/lib/dnf"
}
return strconv.Itoa(len(pkgs)) + " (dnf)"
}
return ""
}
func getFlatpak() string {
if pathExists("/usr/bin/flatpak") {
pkgs, err := os.ReadDir("/var/lib/flatpak")
if err != nil {
return "error reading /var/lib/flatpak"
}
return strconv.Itoa(len(pkgs)) + " (flatpak)"
}
return ""
}
func getZypper() string {
if pathExists("/var/lib/zypp") {
pkgs, err := os.ReadDir("/var/lib/zypp")
if err != nil {
return "error reading /var/lib/zypp"
}
return strconv.Itoa(len(pkgs)) + " (zypper)"
}
return ""
}
func getXbps() string {
if pathExists("/var/db/xbps") {
pkgs, err := os.ReadDir("/var/db/xbps")
if err != nil {
return "error reading /var/db/xbps"
}
return strconv.Itoa(len(pkgs)) + " (xbps)"
}
return ""
}
func getPortage() string {
if pathExists("/var/lib/portage") {
pkgs, err := os.ReadDir("/var/lib/portage")
if err != nil {
return "error reading /var/lib/portage"
}
return strconv.Itoa(len(pkgs)) + " (emerge)"
}
return ""
}
func getNix() string {
if pathExists("~/.nix-profile") {
pkgs, err := os.ReadDir("~/.nix-profile/lib/nix/profiles/per-user")
if err != nil {
return "error reading ~/.nix-profile/lib/nix/profiles/per-user"
}
return strconv.Itoa(len(pkgs)) + " (nix)"
} }
return "" return ""
} }
func GetPkgs() string { func GetPkgs() string {
rawPkgs := []string{ rawPkgs := []string{
getPacman(), getPmPackages("pacman", "/var/lib/pacman/local"),
getNixOS(), getPmPackages("apt", "/var/lib/apt"),
getNix(), getPmPackages("dnf", "/var/lib/dnf"),
getXbps(), getPmPackages("flatpak", "/var/lib/flatpak"),
getDnf(), getPmPackages("zypper", "/var/lib/zypp"),
getZypper(), getPmPackages("xbps", "/var/db/xbps"),
getApt(), getPmPackages("emerge", "/var/lib/portage"),
getPortage(), getPmPackages("nix-user", "~/.nix-profile/lib/nix/profiles/per-user"),
getFlatpak(), getPmPackages("nix", "/nix/store"),
} }
var pkgsList []string var pkgsList []string
for _, p := range rawPkgs { for _, p := range rawPkgs {