#!/bin/bash
#############################################################################################
#               .--.
#              |o_o |
#              |:_/ |
#             //   \ \
#            (|     | )
#            /'\_   _/`\
#            \___)=(___/
#
# Script Name:  weekly-updater.sh
# Beschreibung: Legt den weekly-Updater an
# Aufruf:       git clone https://git.retronerd.at/schiwagoa/weekly-updater.git
#               bash ./weekly-updater.git
# Autor:        Thomas Werner Schwaighofer
# Web:          https://www.retronerd.at
# eMail:        webmaster@retronerd.at
# Git-Reposit.: https://git.retronerd.at/schiwagoa/weekly-updater.git
# Version:      1.0.0
# Datum:        10.04.2024
# Modifikation: Initial
#
# Copyright (c) 2024
# Author: SchiWaGoa
# License: MIT
# 
#
##############################################################################################

# Variablen
SCRIPT_NAME=weekly-update.sh
HOSTNAME=$(hostname)
MAIL=system@retronerd.at
LOGDIR=/var/log/script-logs

# Logging aktivieren
mkdir -p $LOGDIR
exec &> >(tee -a "$LOGDIR/$SCRIPT_NAME.log")

# Aktualisiere das System
sudo apt update && sudo apt upgrade -y

# Überprüfe, ob das Update erfolgreich war
if [ $? -eq 0 ]; then
    # Räume das System auf
    sudo apt-get clean -y

    # Bereinige Log-Dateien, die älter als 60 Tage sind
    find /var/log -type f -name "*.log" -mtime +60 -exec rm {} \;

    # Bereinige den APT-Cache
    sudo apt-get clean

    # Bereinige den Paket-Cache von alten Paketen
    sudo apt-get autoclean

    # Entferne ungenutzte Abhängigkeiten
    sudo apt-get autoremove --purge

    # Bereinige die Homeverzeichnisse der Benutzer
    find /home -type f \( -name "*.bak" -o -name "*.tmp" -o -name "*.swp" \) -delete

    # Leere den Trash-Ordner des Root-Benutzers
    sudo rm -rf /root/.local/share/Trash/*

    # Leere den Trash-Ordner der Benutzer, falls vorhanden
    for user in /home/*; do
        if [ -d "$user/.local/share/Trash" ]; then
            sudo rm -rf "$user/.local/share/Trash/*"
        fi
    done

    # Leere das temporäre Verzeichnis
    sudo rm -rf /tmp/*

else
    # Sende eine E-Mail, wenn das Update fehlgeschlagen ist
    log_contents=$(cat $LOGDIR/$SCRIPT_NAME.log)
    echo -e "Das Update auf $HOSTNAME ist fehlgeschlagen! \n\nLog-Inhalt: \n\n$log_contents" | mail -s "Woechentliches Update auf $HOSTNAME fehlgeschlagen" $MAIL
fi

exit 0