#!/bin/bash
#set -e
###############################################################################
# Author    :   Erik Dubois
# Website   :   https://www.erikdubois.be
# Website   :   https://www.arcolinux.info
# Website   :   https://www.arcolinux.com
# Website   :   https://www.arcolinuxd.com
# Website   :   https://www.arcolinuxb.com
# Website   :   https://www.arcolinuxiso.com
# Website   :   https://www.arcolinuxforum.com
###############################################################################
#
#   DO NOT JUST RUN THIS. EXAMINE AND JUDGE. RUN AT YOUR OWN RISK.
#
###############################################################################

_clean_packages(){

    local _packages_to_remove=($(comm -23 <(pacman -Qqt | sort) <({ pacman -Qqg base-devel; echo "base"; echo "base-devel"; } | sort -u)))
    local xx
    # @ does one by one to avoid errors in the entire process
    # * can be used to treat all packages in one command
    for xx in ${_packages_to_remove[@]}; do pacman -Rsc $xx --noconfirm; done

}

_clean_packages
