]> git.rmz.io Git - dotfiles.git/blobdiff - zsh/aliases/pacman.zsh
mutt: fix F macro to not write message to home
[dotfiles.git] / zsh / aliases / pacman.zsh
index c3a71bb48fc4df9687f9a80ba58fa06ff1967886..2e29650ae0a38619df9a8d99542741d633ad0e5e 100644 (file)
@@ -28,6 +28,8 @@ paclist() {
 }
 
 pacclean() {
+    local _count_pkg=$(pacman -Qq | wc -l)
+    local _count_pkg_exp=$(pacman -Qeq | wc -l)
     local _pkgs=( $(pacman -Qeq) )
     for pkg in ${_pkgs[@]}; do
         # the file has been removed by a previous clean
@@ -37,18 +39,28 @@ pacclean() {
 
         local edrq=''
         while true; do
-            echo -n "Explicit, Dependency, Remove, Quit? [Edrq] "
+            echo -n "Explicit, Dependency, Remove, List, Quit? [Edrlq] "
             read -sk edrq
             echo
             case $edrq in
-                [Qq]) return ;;
+                [Qq]) break 2 ;;
                 $'\n') ;&
                 [Ee]) break ;;
                 [Rr]) sudo pacman -Rnscu $pkg; break ;;
                 [Dd]) sudo pacman -D --asdeps $pkg; break ;;
+                [Ll]) pacman -Ql $pkg | less ;;
             esac
         done
     done
+    local _count_pkg_after=$(pacman -Qq | wc -l)
+    local _count_pkg_exp_after=$(pacman -Qeq | wc -l)
+    local _delta_pkg=$(($_count_pkg_after - $_count_pkg))
+    local _delta_pkg_exp=$(($_count_pkg_exp_after - $_count_pkg_exp))
+    printf "\n         %8s | %8s" "Packages"        "Explicit"
+    printf "\nBefore | %8d | %8d" $_count_pkg       $_count_pkg_exp
+    printf "\n After | %8d | %8d" $_count_pkg_after $_count_pkg_exp_after
+    printf "\n       | %8d | %8d" $_delta_pkg       $_delta_pkg_exp
+    printf "\n"
 }
 # [l]ist [o]orphans
 alias paclo='pacman -Qdt'