diff options
Diffstat (limited to 'packages.sh')
-rwxr-xr-x | packages.sh | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/packages.sh b/packages.sh new file mode 100755 index 0000000..454e0e5 --- /dev/null +++ b/packages.sh @@ -0,0 +1,25 @@ +#!/bin/bash +all=($(< packages.txt sed 's/#.*//' | xargs printf -- '%s\n' | sort -u)) +grps=($(printf -- '%s\n' "${all[@]}" | sed -n 's/^g://p')) +pkgs=($(printf -- '%s\n' "${all[@]}" | sed -n 's/^p://p')) + +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 only optionally needed' +comm -23 \ + <(pacman -Qdttq|sort -u) \ + <(pacman -Qdtq |sort -u) | +sed 's|^| -> |' + +echo ' => Installed as dependencies, but no longer needed' +pacman -Qdtq|sort -u |sed 's|^| -> |' |