diff --git a/src/providers/packages.go b/src/providers/packages.go index 9da3319..6d75e71 100644 --- a/src/providers/packages.go +++ b/src/providers/packages.go @@ -11,116 +11,28 @@ func pathExists(path string) bool { return err == nil } -func getNixOS() string { - if pathExists("/nix/store") { - pkgs, err := os.ReadDir("/nix/store") +func getPmPackages(packagerName string, packagerPath string) string { + if pathExists(packagerPath) { + pkgs, err := os.ReadDir(packagerPath) if err != nil { - return "error reading /nix/store" + return "error reading " + packagerPath } - return strconv.Itoa(len(pkgs)) + " (nix)" - } - 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 strconv.Itoa(len(pkgs)) + " (" + packagerName + ")" } return "" } func GetPkgs() string { rawPkgs := []string{ - getPacman(), - getNixOS(), - getNix(), - getXbps(), - getDnf(), - getZypper(), - getApt(), - getPortage(), - getFlatpak(), + getPmPackages("pacman", "/var/lib/pacman/local"), + getPmPackages("apt", "/var/lib/apt"), + getPmPackages("dnf", "/var/lib/dnf"), + getPmPackages("flatpak", "/var/lib/flatpak"), + getPmPackages("zypper", "/var/lib/zypp"), + getPmPackages("xbps", "/var/db/xbps"), + getPmPackages("emerge", "/var/lib/portage"), + getPmPackages("nix-user", "~/.nix-profile/lib/nix/profiles/per-user"), + getPmPackages("nix", "/nix/store"), } var pkgsList []string for _, p := range rawPkgs {