#!/bin/bash isroot=false issudo=false if [ "$EUID" -eq 0 ];then isroot=true;fi if [ -n "$SUDO_USER" ]; then issudo=true;fi usage(){ echo -n "spm " cat ./usr/share/doc/spm/spm_clean } yn="" while getopts 'hYyNnafp' flag; do case "${flag}" in [YyNnafp] ) yn="${yn}${flag}" ;; h|* ) usage;exit 1 ;; esac done if $isroot; then echo -e "\033[1mUpdating apt sources...\033[0m" apt -qqq update echo -e "\033[1mThe following packages were automatically installed and are no longer required:\033[0m" apt list '?garbage' fi echo -e "\033[1mUnable to preview unused flatpak packages\033[0m" echo -e "\033[1mUnable to clean pipx packages\033[0m" while true; do if [ -z "$yn" ];then echo "Yy: Clean all" echo "Nn: Clean nothing" if $isroot; then echo "Aa: Remove unused apt packages";fi echo "Ff: Remove unused flatpak packages" read -p "Clean packages? " yn fi case $yn in *[Nn]* ) exit;; *[Yya]* ) if $isroot; then echo -e "\033[1mRemoving unused apt packages...\033[0m";apt -y autoremove;fi;;& *[Yyf]* ) if $issudo; then echo -e "\033[1mRemoving unused flatpak packages...\033[0m";sudo -u $SUDO_USER flatpak uninstall -y --unused;else flatpak uninstall -y --unused;fi;;& *[p]* ) echo -e "\033[1mUnable to clean pipx packages\033[0m";;& *[Yyafp]* ) break;; * ) yn=""; echo "Please select a valid option.";; esac done