Commit de8d191
Eric Bower
·
2026-08-28 23:13:54 -0400 EDT
parent 4e34554
refactor(pacm): only install missing packages
2 files changed,
+14,
-3
M
bin/pacm
+14,
-2
1@@ -4,7 +4,7 @@ set -euo pipefail
2 PKGFILE="${2:-$HOME/.config/pacm/pkgfile.txt}"
3
4 usage() {
5- echo "usage: pacm [init|edit|install|clean|sync] [pkgfile]" >&2
6+ echo "usage: pacm [init|edit|install|clean|sync|missing] [pkgfile]" >&2
7 }
8
9 must_pkgfile() {
10@@ -15,8 +15,16 @@ must_pkgfile() {
11 fi
12 }
13
14+do_missing() {
15+ comm -23 <(sed '/^[[:space:]]*$/d' "$PKGFILE" | sort -u) <(pacman -Qq | sort)
16+}
17+
18 do_install() {
19- xargs -a "$PKGFILE" sudo pacman -S --needed
20+ local pkgs
21+ pkgs=$(do_missing)
22+ if [[ -n "$pkgs" ]]; then
23+ sudo pacman -S --needed $pkgs
24+ fi
25 }
26
27 do_clean() {
28@@ -48,6 +56,10 @@ sync)
29 do_install
30 do_clean
31 ;;
32+missing)
33+ must_pkgfile
34+ do_missing
35+ ;;
36 *)
37 usage
38 exit 1
+0,
-1
1@@ -59,7 +59,6 @@ moreutils
2 mpv
3 msmtp
4 ncdu
5-networkmanager
6 nfs-utils
7 nmap
8 nodejs