refactor package count logic again (more clean code(по заветам melvi))
This commit is contained in:
parent
bc28808baf
commit
88a82697dd
@ -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 {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user