#!/bin/bash
#
# Removes old kernels from the system
#
# Gabriel Marques 
# snortt@gmail.com
# Sat Feb 15 13:29:59 EST 2020
# 

current_uname=$(uname -r)
current_version=$(echo ${current_uname%-*})
packages="$(dpkg -l | grep 'ii' | grep -e 'linux\-\(image\|headers\|modules\)\-[e,0-9]' | awk -F " " '{print $2}' | grep -v $current_version)"

doRemove() {
	echo "Removing $packages..."
	sudo apt-get -y purge $packages && \
	echo "Kernel Packages :: OK"	
    cd /lib/modules
    sudo rm -rf $(ls | grep -v $(echo ${current_version})) 2> /dev/null && \
    echo "Additional local modules :: OK"
}    

if [ -z "$packages" ]; then 
	echo "No old kernel packages found. Nothing to remove"
	exit 201
else 
    if [ "$1" == "-y" ] || [ "$1" == "--yes" ]; then
        doRemove
    else
        echo -en "---------------------------------------\n"
        echo -en "Your current kernel is $current_version\n"
        echo -en "---------------------------------------\n"
        echo -en "Found these old packages\n$packages\n"
        echo -en "---------------------------------------\n"
        echo -en "Do you want to remove them? (y/N)\n: "
        read answer
        
        if [ "$answer" == 'y' ] || [ "$answer" == 'Y' ]; then
            doRemove
        else
            echo "User abort!"
            exit 202
        fi
    fi
fi
