archlinux.plugin.zsh
5809 bytes
1#######################################
2# Pacman #
3#######################################
4
5# Pacman - https://wiki.archlinux.org/index.php/Pacman_Tips
6alias pacupg='sudo pacman -Syu'
7alias pacin='sudo pacman -S'
8alias paclean='sudo pacman -Sc'
9alias pacins='sudo pacman -U'
10alias paclr='sudo pacman -Scc'
11alias pacre='sudo pacman -R'
12alias pacrem='sudo pacman -Rns'
13alias pacrep='pacman -Si'
14alias pacreps='pacman -Ss'
15alias pacloc='pacman -Qi'
16alias paclocs='pacman -Qs'
17alias pacinsd='sudo pacman -S --asdeps'
18alias pacmir='sudo pacman -Syy'
19alias paclsorphans='pacman -Qdt'
20alias pacrmorphans='sudo pacman -Rs $(pacman -Qtdq)'
21alias pacfileupg='sudo pacman -Fy'
22alias pacfiles='pacman -F'
23alias pacls='pacman -Ql'
24alias pacown='pacman -Qo'
25alias pacupd="sudo pacman -Sy"
26
27function paclist() {
28 pacman -Qqe | xargs -I{} -P0 --no-run-if-empty pacman -Qs --color=auto "^{}\$"
29}
30
31function pacdisowned() {
32 local tmp_dir db fs
33 tmp_dir=$(mktemp --directory)
34 db=$tmp_dir/db
35 fs=$tmp_dir/fs
36
37 trap "rm -rf $tmp_dir" EXIT
38
39 pacman -Qlq | sort -u > "$db"
40
41 find /etc /usr ! -name lost+found \
42 \( -type d -printf '%p/\n' -o -print \) | sort > "$fs"
43
44 comm -23 "$fs" "$db"
45
46 rm -rf $tmp_dir
47}
48
49alias pacmanallkeys='sudo pacman-key --refresh-keys'
50
51function pacmansignkeys() {
52 local key
53 for key in $@; do
54 sudo pacman-key --recv-keys $key
55 sudo pacman-key --lsign-key $key
56 printf 'trust\n3\n' | sudo gpg --homedir /etc/pacman.d/gnupg \
57 --no-permission-warning --command-fd 0 --edit-key $key
58 done
59}
60
61if (( $+commands[xdg-open] )); then
62 function pacweb() {
63 if [[ $# = 0 || "$1" =~ '--help|-h' ]]; then
64 local underline_color="\e[${color[underline]}m"
65 echo "$0 - open the website of an ArchLinux package"
66 echo
67 echo "Usage:"
68 echo " $bold_color$0$reset_color ${underline_color}target${reset_color}"
69 return 1
70 fi
71
72 local pkg="$1"
73 local infos="$(LANG=C pacman -Si "$pkg")"
74 if [[ -z "$infos" ]]; then
75 return
76 fi
77 local repo="$(grep -m 1 '^Repo' <<< "$infos" | grep -oP '[^ ]+$')"
78 local arch="$(grep -m 1 '^Arch' <<< "$infos" | grep -oP '[^ ]+$')"
79 xdg-open "https://www.archlinux.org/packages/$repo/$arch/$pkg/" &>/dev/null
80 }
81fi
82
83#######################################
84# AUR helpers #
85#######################################
86
87if (( $+commands[aura] )); then
88 alias auin='sudo aura -S'
89 alias aurin='sudo aura -A'
90 alias auclean='sudo aura -Sc'
91 alias auclr='sudo aura -Scc'
92 alias auins='sudo aura -U'
93 alias auinsd='sudo aura -S --asdeps'
94 alias aurinsd='sudo aura -A --asdeps'
95 alias auloc='aura -Qi'
96 alias aulocs='aura -Qs'
97 alias aulst='aura -Qe'
98 alias aumir='sudo aura -Syy'
99 alias aurph='sudo aura -Oj'
100 alias aure='sudo aura -R'
101 alias aurem='sudo aura -Rns'
102 alias aurep='aura -Si'
103 alias aurrep='aura -Ai'
104 alias aureps='aura -As --both'
105 alias auras='aura -As --both'
106 alias auupd="sudo aura -Sy"
107 alias auupg='sudo sh -c "aura -Syu && aura -Au"'
108 alias ausu='sudo sh -c "aura -Syu --no-confirm && aura -Au --no-confirm"'
109
110 # extra bonus specially for aura
111 alias auown="aura -Qqo"
112 alias auls="aura -Qql"
113 function auownloc() { aura -Qi $(aura -Qqo $@); }
114 function auownls () { aura -Qql $(aura -Qqo $@); }
115fi
116
117if (( $+commands[pacaur] )); then
118 alias pacclean='pacaur -Sc'
119 alias pacclr='pacaur -Scc'
120 alias paupg='pacaur -Syu'
121 alias pasu='pacaur -Syu --noconfirm'
122 alias pain='pacaur -S'
123 alias pains='pacaur -U'
124 alias pare='pacaur -R'
125 alias parem='pacaur -Rns'
126 alias parep='pacaur -Si'
127 alias pareps='pacaur -Ss'
128 alias paloc='pacaur -Qi'
129 alias palocs='pacaur -Qs'
130 alias palst='pacaur -Qe'
131 alias paorph='pacaur -Qtd'
132 alias painsd='pacaur -S --asdeps'
133 alias pamir='pacaur -Syy'
134 alias paupd="pacaur -Sy"
135fi
136
137if (( $+commands[trizen] )); then
138 alias trconf='trizen -C'
139 alias trupg='trizen -Syua'
140 alias trsu='trizen -Syua --noconfirm'
141 alias trin='trizen -S'
142 alias trclean='trizen -Sc'
143 alias trclr='trizen -Scc'
144 alias trins='trizen -U'
145 alias trre='trizen -R'
146 alias trrem='trizen -Rns'
147 alias trrep='trizen -Si'
148 alias trreps='trizen -Ss'
149 alias trloc='trizen -Qi'
150 alias trlocs='trizen -Qs'
151 alias trlst='trizen -Qe'
152 alias trorph='trizen -Qtd'
153 alias trinsd='trizen -S --asdeps'
154 alias trmir='trizen -Syy'
155 alias trupd="trizen -Sy"
156fi
157
158if (( $+commands[yay] )); then
159 alias yaconf='yay -Pg'
160 alias yaclean='yay -Sc'
161 alias yaclr='yay -Scc'
162 alias yaupg='yay -Syu'
163 alias yasu='yay -Syu --noconfirm'
164 alias yain='yay -S'
165 alias yains='yay -U'
166 alias yare='yay -R'
167 alias yarem='yay -Rns'
168 alias yarep='yay -Si'
169 alias yareps='yay -Ss'
170 alias yaloc='yay -Qi'
171 alias yalocs='yay -Qs'
172 alias yalst='yay -Qe'
173 alias yaorph='yay -Qtd'
174 alias yainsd='yay -S --asdeps'
175 alias yamir='yay -Syy'
176 alias yaupd="yay -Sy"
177fi
178
179# Check Arch Linux PGP Keyring before System Upgrade to prevent failure.
180function upgrade() {
181 sudo pacman -Sy
182 echo ":: Checking Arch Linux PGP Keyring..."
183 local installedver="$(LANG= sudo pacman -Qi archlinux-keyring | grep -Po '(?<=Version : ).*')"
184 local currentver="$(LANG= sudo pacman -Si archlinux-keyring | grep -Po '(?<=Version : ).*')"
185 if [ $installedver != $currentver ]; then
186 echo " Arch Linux PGP Keyring is out of date."
187 echo " Updating before full system upgrade."
188 sudo pacman -S --needed --noconfirm archlinux-keyring
189 else
190 echo " Arch Linux PGP Keyring is up to date."
191 echo " Proceeding with full system upgrade."
192 fi
193 if (( $+commands[yay] )); then
194 yay -Su
195 elif (( $+commands[trizen] )); then
196 trizen -Su
197 elif (( $+commands[pacaur] )); then
198 pacaur -Su
199 elif (( $+commands[aura] )); then
200 sudo aura -Su
201 else
202 sudo pacman -Su
203 fi
204}