summaryrefslogtreecommitdiff
path: root/packages-diff.sh
blob: b60d81ff12f20f699d113b8ff5d6a12fda754f0b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/bin/bash
grps=($(sed -n -e 's/#.*//;s/^g://p' < packages.txt))
pkgs=($(sed -n -e 's/#.*//;s/^p://p' < packages.txt))

echo ' => In packages.txt, but not installed'
comm -13 \
    <(pacman -Qq|sort -u) \
    <({ pacman -Qgq -- "${grps[@]}"; printf '%s\n' "${pkgs[@]}"; }|sort -u) |
sed 's|^|  -> |'

echo ' => Installed explicitly, but not in packages.txt'
comm -23 \
    <(pacman -Qetq|sort -u) \
    <({ pacman -Qgq -- "${grps[@]}"; printf '%s\n' "${pkgs[@]}"; }|sort -u) |
sed 's|^|  -> |'

echo ' => Installed as dependencies, but no longer needed'
pacman -Qdtq|sort -u |sed 's|^|  -> |'