From f730fc6a81b939dccdedd1a7d630b0cd40cb3810 Mon Sep 17 00:00:00 2001 From: Andrea Canepa <32621046+A-725-K@users.noreply.github.com> Date: Sun, 4 Oct 2020 13:53:30 +0200 Subject: [PATCH] Wrong number of packages reported for some package managers (#1556) * Wrong number of snap packages reported: fixed for snap (#1274) * Adjusted indentation and improved packages count (#1274) * Fixed spacing in empty lines --- neofetch | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/neofetch b/neofetch index 249ab3fd..aca6d003 100755 --- a/neofetch +++ b/neofetch @@ -1478,21 +1478,28 @@ get_uptime() { } get_packages() { + # to adjust the number of pkgs per pkg manager + pkgs_h=0 + # has: Check if package manager installed. # dir: Count files or dirs in a glob. # pac: If packages > 0, log package manager name. # tot: Count lines in command output. has() { type -p "$1" >/dev/null && manager=$1; } - dir() { ((packages+=$#)); pac "$#"; } + dir() { ((packages+=$#)); pac "$(($#-pkgs_h))"; } pac() { (($1 > 0)) && { managers+=("$1 (${manager})"); manager_string+="${manager}, "; }; } - tot() { IFS=$'\n' read -d "" -ra pkgs <<< "$("$@")";((packages+=${#pkgs[@]}));pac "${#pkgs[@]}";} + tot() { + IFS=$'\n' read -d "" -ra pkgs <<< "$("$@")"; + ((packages+=${#pkgs[@]})); + pac "$((${#pkgs[@]}-pkgs_h))"; + } # Redefine tot() for Bedrock Linux. [[ -f /bedrock/etc/bedrock-release && $PATH == */bedrock/cross/* ]] && { tot() { IFS=$'\n' read -d "" -ra pkgs <<< "$(for s in $(brl list); do strat -r "$s" "$@"; done)" ((packages+="${#pkgs[@]}")) - pac "${#pkgs[@]}" + pac "$((${#pkgs[@]}-pkgs_h))"; } br_prefix="/bedrock/strata/*" } @@ -1512,7 +1519,7 @@ get_packages() { has lvu && tot lvu installed has tce-status && tot tce-status -i has pkg_info && tot pkg_info - has tazpkg && tot tazpkg list && ((packages-=6)) + has tazpkg && pkgs_h=6 tot tazpkg list && ((packages-=6)) has sorcery && tot gaze installed has alps && tot alps showinstalled has butch && tot butch list @@ -1573,7 +1580,8 @@ get_packages() { # Snap hangs if the command is run without the daemon running. # Only run snap if the daemon is also running. - has snap && ps -e | grep -qFm 1 snapd >/dev/null && tot snap list && ((packages-=1)) + has snap && ps -e | grep -qFm 1 snapd >/dev/null && \ + pkgs_h=1 tot snap list && ((packages-=1)) # This is the only standard location for appimages. # See: https://github.com/AppImage/AppImageKit/wiki @@ -1581,7 +1589,7 @@ get_packages() { ;; "Mac OS X"|"macOS"|MINIX) - has port && tot port installed && ((packages-=1)) + has port && pkgs_h=1 tot port installed && ((packages-=1)) has brew && dir /usr/local/Cellar/* has pkgin && tot pkgin list @@ -1603,9 +1611,9 @@ get_packages() { esac # Scoop environment throws errors if `tot scoop list` is used - has scoop && dir ~/scoop/apps/* && ((packages-=1)) + has scoop && pkgs_h=1 dir ~/scoop/apps/* && ((packages-=1)) - # Count chocolatey packages. + # Count chocolatey packages. [[ -d /cygdrive/c/ProgramData/chocolatey/lib ]] && \ dir /cygdrive/c/ProgramData/chocolatey/lib/* ;; @@ -1613,11 +1621,11 @@ get_packages() { Haiku) has pkgman && dir /boot/system/package-links/* packages=${packages/pkgman/depot} - ;; - + ;; + IRIX) manager=swpkg - tot versions -b && ((packages-=3)) + pkgs_h=3 tot versions -b && ((packages-=3)) ;; esac