#!/bin/bash
#
# Skript pro manuálně spouštěnou aktualizaci vč. odebrání zastaralých souborů
# Název skriptu : man-dist-upgrade
# Doporučen umístění a práva : /usr/local/sbin root:root rwx,r-x,r-x
#
# D. Dvořák
#

TEXT_RESET='\e[0m'
TEXT_YELLOW='\e[0;33m'
TEXT_RED_B='\e[1;31m'
TEXT_GREEN_L='\e[92m'

check_exit_status() {

	if [ $? -eq 0 ]
	then
		echo -e $TEXT_YELLOW
		echo "* OK - zdá se, že je vše v pořádku"
		echo -e $TEXT_RESET

	else
		echo -e $TEXT_RED_B
		echo "* ERROR - chyba!"
		echo -e $TEXT_RESET

		read -p "* Mám ukončit script? (ano/ne) " answer

            if [ "$answer" == "ano" ]
            then
                exit 1
            fi
	fi
}

check_continue() {

	read -p "* Pokračovat? (ano/ne) " answer
	echo

	     if [ "$answer" != "ano" ]
            then
                exit 1
            fi

}
greeting() {

	echo -e $TEXT_YELLOW
	echo "Aktualizace systému se skládá z následujících kroků :"
	echo "- kontrola stavu => zjištění existence aktualizovaných balíčků"
	echo "- aktualizace balíčků => nahrazení zastaralých balíčků"
	echo "- uvolnění místa na disku => odstranění již nepotřebných balíčků"

}

update() {
	echo -e $TEXT_GREEN_L
	echo "* Zjistit existenci aktualizovaných balíčků?"
	echo -e $TEXT_RESET
	check_continue

        sudo apt-get update;
	check_exit_status

	echo -e $TEXT_GREEN_L"* Provést samotnou aktualizaci balíčků?"
	echo -e $TEXT_RESET
	check_continue

        sudo apt-get dist-upgrade -y;
	check_exit_status
}

housekeeping() {

	echo -e $TEXT_GREEN_L"* Uvolnit místo na disku?"
	echo -e $TEXT_RESET

	check_continue

	echo -e $TEXT_YELLOW"* Odstraňuji nepotřebné balíčky."
	echo -e $TEXT_RESET

	sudo apt autoremove --purge -y;
	check_exit_status

	echo -e $TEXT_YELLOW"* Mažu stažené balíčky."
	echo -e $TEXT_RESET

	sudo apt-get autoclean -y;
	check_exit_status

	echo -e $TEXT_YELLOW"* Aktualizuji databázi souborů"
	echo -e $TEXT_RESET
	echo "... chvíli strpení ..."
	sudo updatedb;
	check_exit_status
}

leave() {

	echo -e $TEXT_GREEN_L"--------------------------"
	echo "- Aktualizace kompletní! -"
	echo "--------------------------"

	if [ -f /var/run/reboot-required ]; then
	    echo -e $TEXT_RED_B
	    echo 'Po aktualizci je pro dokončení vyžadován rester systému!'
	    echo -e $TEXT_RESET
	fi
	echo
	read -n 1 -r -s -p $'* Stiskem jakékoliv klávesy zavřete terminál...\n'

	exit
}

greeting
update
housekeeping
leave
