redefined getPkgs logic, added new distros logos and package managers
This commit is contained in:
parent
1df5466434
commit
91a413584c
BIN
logos/alpine.png
(Stored with Git LFS)
Normal file
BIN
logos/alpine.png
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -20,6 +20,33 @@ func GetLogo(id string) string {
|
|||||||
return "logos/nixos.png"
|
return "logos/nixos.png"
|
||||||
case strings.HasPrefix(id, "debian"):
|
case strings.HasPrefix(id, "debian"):
|
||||||
return "logos/debian.png"
|
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"
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return "logos/linux.png"
|
return "logos/linux.png"
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,50 +2,135 @@ package providers
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"os"
|
"os"
|
||||||
"os/exec"
|
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
func checkNix() bool {
|
func pathExists(path string) bool {
|
||||||
_, err := os.Stat("/nix")
|
_, err := os.Stat(path)
|
||||||
if err != nil {
|
return err == nil
|
||||||
return false
|
|
||||||
}
|
|
||||||
return true
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func addNix() string {
|
func getNixOS() string {
|
||||||
out, _ := exec.Command("sh", "-c", "nix-env -q | wc -l").Output()
|
if pathExists("/nix/store") {
|
||||||
nixPkgs := strings.TrimSpace(string(out)) + " (nix)"
|
pkgs, err := os.ReadDir("/nix/store")
|
||||||
return nixPkgs
|
if err != nil {
|
||||||
|
return "error reading /nix/store"
|
||||||
|
}
|
||||||
|
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 ""
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetPkgs() string {
|
func GetPkgs() string {
|
||||||
var pkgs string
|
rawPkgs := []string{
|
||||||
haveNix := checkNix()
|
getPacman(),
|
||||||
if strings.HasPrefix(id, "arch") {
|
getNixOS(),
|
||||||
out, _ := exec.Command("sh", "-c", "pacman -Qq | wc -l").Output()
|
getNix(),
|
||||||
pkgs = strings.TrimSpace(string(out)) + " (pacman)"
|
getXbps(),
|
||||||
if haveNix {
|
getDnf(),
|
||||||
pkgs = strings.TrimSpace(pkgs + ", " + addNix())
|
getZypper(),
|
||||||
|
getApt(),
|
||||||
|
getPortage(),
|
||||||
|
getFlatpak(),
|
||||||
}
|
}
|
||||||
return pkgs
|
var pkgsList []string
|
||||||
|
for _, p := range rawPkgs {
|
||||||
|
if p != "" {
|
||||||
|
pkgsList = append(pkgsList, p)
|
||||||
}
|
}
|
||||||
if strings.HasPrefix(id, "debian") {
|
|
||||||
out, _ := exec.Command("sh", "-c", "dpkg -l | grep ^ii | wc -l").Output()
|
|
||||||
pkgs = strings.TrimSpace(string(out)) + " (apt)"
|
|
||||||
if haveNix {
|
|
||||||
pkgs = strings.TrimSpace(pkgs + ", " + addNix())
|
|
||||||
}
|
}
|
||||||
return pkgs
|
if len(pkgsList) == 0 {
|
||||||
|
return "unknown package manager"
|
||||||
}
|
}
|
||||||
if strings.HasPrefix(id, "nixos") {
|
|
||||||
entries, err := os.ReadDir("/run/current-system/sw/bin")
|
return strings.Join(pkgsList[:], ", ")
|
||||||
if err != nil {
|
|
||||||
return "can't get nix packages"
|
|
||||||
}
|
|
||||||
return strconv.Itoa(len(entries)) + " (nix)"
|
|
||||||
}
|
|
||||||
return "unknown"
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -66,7 +66,7 @@ func GetRam() string {
|
|||||||
availableMB := available / 1024
|
availableMB := available / 1024
|
||||||
usedMB := totalMB - availableMB
|
usedMB := totalMB - availableMB
|
||||||
|
|
||||||
ram := fmt.Sprintf("%d / %d MiB (%d MiB available)", usedMB, totalMB, availableMB)
|
ram := fmt.Sprintf("%d / %d MiB", usedMB, totalMB)
|
||||||
ram = strings.TrimSpace(ram)
|
ram = strings.TrimSpace(ram)
|
||||||
return ram
|
return ram
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user