From 4c7aab190bdd467bf51a5f0503de838707830fa0 Mon Sep 17 00:00:00 2001 From: Samir Benmendil Date: Tue, 15 Nov 2016 09:16:58 +0000 Subject: [PATCH] zsh: add pacclean function --- zsh/aliases/pacman.zsh | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/zsh/aliases/pacman.zsh b/zsh/aliases/pacman.zsh index ba27286..c3a71bb 100644 --- a/zsh/aliases/pacman.zsh +++ b/zsh/aliases/pacman.zsh @@ -26,6 +26,30 @@ alias pacmir='sudo pacman -Syy' # Force refresh of all package li paclist() { pacman -Qei "$@" | awk 'BEGIN {FS=": "}/^Name/{printf("\033[1;36m%s\033[0m ",$2)}/^Description/{print $2}' } + +pacclean() { + local _pkgs=( $(pacman -Qeq) ) + for pkg in ${_pkgs[@]}; do + # the file has been removed by a previous clean + pacman -Qq $pkg 2>&1 1>/dev/null || continue + + pacman -Qi $pkg | awk 'BEGIN {FS=": "}/^Name/{printf("\n\033[1;36m%s\033[0m ",$2)}/^Description/{print $2}/^(Required|Optional For)/' + + local edrq='' + while true; do + echo -n "Explicit, Dependency, Remove, Quit? [Edrq] " + read -sk edrq + echo + case $edrq in + [Qq]) return ;; + $'\n') ;& + [Ee]) break ;; + [Rr]) sudo pacman -Rnscu $pkg; break ;; + [Dd]) sudo pacman -D --asdeps $pkg; break ;; + esac + done + done +} # [l]ist [o]orphans alias paclo='pacman -Qdt' # [r]emove [o]orphans -- 2.48.1