2024-05-02 17:10:04 +02:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
|
|
|
|
|
declare -a aurdeps=()
|
|
|
|
|
|
|
|
|
|
proctected=(
|
|
|
|
|
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 \
|
2024-05-06 11:18:23 +02:00
|
|
|
<(<packages.yml yaml2json | jq --raw-output0 '.packages | map(.archlinux) | flatten[]') \
|
2024-05-02 17:10:04 +02:00
|
|
|
<(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)
|
|
|
|
|
|
2024-05-03 14:41:09 +02:00
|
|
|
if (( "${#packages_to_remove}" > 0 )) ; then
|
2024-05-06 11:18:56 +02:00
|
|
|
sudo pacman -Rcns "${packages_to_remove[@]}" "${@}" || exit $?
|
|
|
|
|
exit 123
|
2024-05-03 14:41:09 +02:00
|
|
|
fi
|
2024-05-02 17:10:04 +02:00
|
|
|
|