Add script to remove unconfigured packages

This commit is contained in:
2024-05-02 17:10:04 +02:00
parent 3e76a82cb2
commit d98529f30b

41
remove-unconfigured-packages.sh Executable file
View File

@@ -0,0 +1,41 @@
#!/usr/bin/env bash
declare -a aurdeps=()
proctected=(
nvidia-dkms
intel-ucode
amd-ucode
base
java-runtime-common
jdk17-openjdk
)
for pkgbuild in pkgbuilds/*/PKGBUILD ; do
source "${pkgbuild}"
aurdeps+=("${depends[@]%%[<=>]*}" "${makedepends[@]%%[<=>]*}" "${pkgname}")
done
packages_to_remove=()
readarray -d $'\0' -t packages_to_remove < <(comm --zero-terminated -13 \
<(cat \
<(<packages.yml yaml2json | jq --raw-output0 '.packages.list | map(.archlinux) | flatten[]') \
<(for dep in "${aurdeps[@]}" ; do printf '%s\0' "${dep}" ; done) \
| sort -zu) \
<(pacman -Qq --explicit | xargs -I "{}" printf '%s\0' "{}" | sort -zu) \
| while IFS= read -r -d $'\0' package; do
skip=0
for protected in "${proctected[@]}" ; do
if [[ "${package}" == "${protected}" ]] ; then
skip=1
fi
done
if (( skip )) ; then
continue
fi
printf '%s\0' "${package}"
done)
sudo pacman -Rcns "${packages_to_remove[@]}"