]> git.rmz.io Git - dotfiles.git/blobdiff - zsh/aliases/pacman.zsh
zsh: allow arguments on pacdisowned
[dotfiles.git] / zsh / aliases / pacman.zsh
index 4f662dbabcc3cb7f14df40b4836b4cd1d086c7b2..988902d96e06a922e74c1c45d6aca2dd00d43677 100644 (file)
@@ -16,6 +16,8 @@ alias pacexp='sudo pacman -D --asexplicit'  # Mark package as explicit
 alias pacinsd='sudo pacman -S --asdeps'        # Install given package(s) as dependencies of another package
 alias pacmir='sudo pacman -Syy'                # Force refresh of all package lists after updating /etc/pacman.d/mirrorlist
 
+[[ -x /usr/bin/packer ]] && alias aur='packer'
+
 # https://bbs.archlinux.org/viewtopic.php?id=93683
 paclist() {
   pacman -Qei | awk 'BEGIN {FS=": "}/^Name/{printf("\033[1;36m%s\033[0m ",$2)}/^Description/{print $2}'
@@ -28,13 +30,19 @@ alias pacro='sudo pacman -Rnscu $(pacman -Qtdq)'
 # Display information about given packages (merges output of -Sii and -Qii)
 paci() {
     for p in $@; do
-        if [[ -n "$(pacman -Qq "$p" 2>/dev/null)" ]]; then 
+        if [[ -n "$(pacman -Qq "$p" 2>/dev/null)" ]]; then
             diff -u100 <(pacman -Qii "$p") <(pacman -Sii "$p" | sed '/^$/,$ d') | sed -e '1,3 d' -e 's/[-+ ]//'
         else
             pacman -Sii "$p"
         fi
     done
 }
+# will only work after another pacman completion has been called first
+compdef '_pacman_completions_all_packages' paci=pacman
+
+pacstat() {
+  LC_ALL=C pacman -Sl | sed -n '/\[installed\]/s/^\([^ ]*\).*/\1/p' | uniq -c
+}
 
 pacdisowned() {
   tmp=${TMPDIR-/tmp}/pacman-disowned-$UID-$$
@@ -46,8 +54,17 @@ pacdisowned() {
 
   pacman -Qlq | sort -u > "$db"
 
-  find /bin /etc /lib /sbin /usr \
-      ! \( -name lost+found -o -name local \) \
+  local -a d
+  if [[ -z $@ ]]; then
+    d=(/etc /usr)
+  else
+    d=($@)
+  fi
+  find ${d[@]} \
+      ! \( -name lost+found \
+        -o -path '*/local/*' \
+        -o -path "*/share/mime/*" \
+        \) \
         \( -type d -printf '%p/\n' -o -print \) | sort > "$fs"
 
   comm -23 "$fs" "$db"