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
|
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 {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user