diff --git a/main.go b/main.go index 341e7a1..7a716fb 100644 --- a/main.go +++ b/main.go @@ -148,16 +148,39 @@ func getHostname() string { return fullHostname } +func checkNix() bool { + _, err := exec.Command("sh", "-c", "command -v nix-env >/dev/null 2>&1").Output() + if err != nil { + return false + } + return true +} + +func addNix() string { + out, _ := exec.Command("sh", "-c", "nix-env -q | wc -l").Output() + nixPkgs := strings.TrimSpace(string(out)) + " (nix)" + return nixPkgs +} + func getPkgs() string { var pkgs string + haveNix := checkNix() if strings.HasPrefix(dist, "Arch") { out, _ := exec.Command("sh", "-c", "pacman -Qq | wc -l").Output() - pkgs = strings.TrimSpace(string(out)) + " (pacman)" + if haveNix { + pkgs = strings.TrimSpace(string(out)) + " (pacman), " + addNix() + } else { + pkgs = strings.TrimSpace(string(out)) + " (pacman)" + } return pkgs } if strings.HasPrefix(dist, "Debian") { out, _ := exec.Command("sh", "-c", "dpkg -l | grep ^ii | wc -l").Output() - pkgs = strings.TrimSpace(string(out)) + " (apt)" + if haveNix { + pkgs = strings.TrimSpace(string(out)) + " (apt), " + addNix() + } else { + pkgs = strings.TrimSpace(string(out)) + " (apt)" + } return pkgs } if strings.HasPrefix(dist, "NixOS") {