#!/bin/bash
################################################################################
#                                                                              #
#                 Install der Basis Toolts/Services/Libs                       #
#                                                                              #
################################################################################
# cowsay optional (wird mit apt install installiert)
info_msg() { if command -v cowsay >/dev/null 2>&1; then cowsay "$@"; else echo "INFO: $*"; fi; }

clear
info_msg "Basis install Teil: "

cat << 'EOF'

   ___  _ _______         __  
  / _ \(_) ___/ /__  ____/ /__
 / ___/ / /__/ / _ \/ __/  '_/
/_/  /_/\___/_/\___/\__/_/\_\ 

EOF

sudo apt update
sudo apt full-upgrade -y 
sudo apt install apache2 fastfetch htop btop kdiskmark git iotop lm-sensors cowsay sl -y
sudo systemctl start ssh
sudo systemctl enable ssh


cat > gitclone.sh << 'EOF'
#!/bin/bash
info_msg() { if command -v cowsay >/dev/null 2>&1; then cowsay "$@"; else echo "INFO: $*"; fi; }
################################################################################
#                                                                              #
#                     Skript zum clonen von Gitlab                             #
#                                                                              #
################################################################################
clear
info_msg "Git wird jetzt gepullt und eingefügt"

print_logo() {
cat <<'LOGO'
   ___  _ _______         __  
  / _ \(_) ___/ /__  ____/ /__
 / ___/ / /__/ / _ \/ __/  '_/
/_/  /_/\___/_/\___/\__/_/\_\ 
LOGO
}

################################################################################
#                                                                              #
#                              ./wecker löschen                                #
#                                                                              #
################################################################################

sudo rm -fr ./wecker

################################################################################
#                                                                              #
#               Gitlab mit Token klonen und int html moven                     #
#                                                                              #
################################################################################

if git clone https://oauth2:cylone-dz3VvNwc5WfnUkC-yasYJG86MQp1OjE5CA.01.0y118nxkv@gitlab.cylone-network.com/lucasschule/wecker.git; then
    echo "Git Clone erfolgreich: erstelle /var/www/wecker neu (config, html, functions, database)"
    [ -f /var/www/wecker/config.php ] && sudo cp /var/www/wecker/config.php /tmp/wecker_config.php.bak
    sudo rm -rf /var/www/wecker
    sudo mkdir -p /var/www/wecker
    sudo cp ./wecker/wecker/config.php.example /var/www/wecker/
    sudo cp ./wecker/wecker/config.php /var/www/wecker/
    sudo cp -r ./wecker/wecker/html /var/www/wecker/
    sudo cp -r ./wecker/wecker/skripts /var/www/wecker/
    sudo cp -r ./wecker/wecker/functions /var/www/wecker/
    sudo cp -r ./wecker/wecker/skripte /var/www/wecker/
    sudo cp -r ./wecker/wecker/storage /var/www/wecker/
    sudo cp -r ./wecker/wecker/logs /var/www/wecker/
    sudo cp -r ./wecker/wecker/database /var/www/wecker/
    [ -f ./wecker/wecker/cron_refresh_wetter.php ] && sudo cp ./wecker/wecker/cron_refresh_wetter.php /var/www/wecker/
    sudo chmod -R 777 /var/www/wecker/storage
    sudo chmod -R 777 /var/www/wecker/logs
    if [ -f /tmp/wecker_config.php.bak ]; then
        sudo mv /tmp/wecker_config.php.bak /var/www/wecker/config.php
        echo "config.php wiederhergestellt – DB-Setup übersprungen"
    else
        echo "Erster Install: Starte DB-Setup (Datenbank + User anlegen, main.sql + Updates, config.php schreiben)..."
        sudo bash /var/www/wecker/skripte/setup_db.sh /var/www/wecker
    fi
else
    echo "FEHLER: Git Clone fehlgeschlagen: /var/www/wecker/html bleibt erhalten"
    exit 1
fi
################################################################################
#                                                                              #
#                 Rechte setzten und ./wecker wider löschen                    #
#                                                                              #
################################################################################

# Log-Verzeichnis für Apache (vhost.conf) sicherstellen
sudo mkdir -p /var/www/wecker/logs
sudo chown www-data:www-data /var/www/wecker/logs 2>/dev/null || true

sudo chmod -R 777 /var/www/wecker/html
sudo chmod -R 777 /var/www/wecker/storage
sudo chmod -R 777 /var/www/wecker/logs
sudo rm -fr ./wecker
sudo chmod -R +x /var/www/wecker/html/skripts/*
sudo chmod -R +x /var/www/wecker/html/skripts_webseite/*

################################################################################
#                                                                              #
#                 Abfrage: Alle_skirpts.sh ausführen?                          #
#                                                                              #
################################################################################

echo
read -rp "Soll /var/www/wecker/html/Alle_skirpts.sh jetzt ausgeführt werden? (y/n): " antwort

case "$antwort" in
  j|J|ja|JA|y|Y)
    echo "INFO: Starte /var/www/wecker/html/Alle_skirpts.sh"
    sudo bash /var/www/wecker/html/Alle_skirpts.sh
    ;;
  *)
    echo "INFO: Alle_skripte.sh wurde nicht ausgeführt"
    sleep 2
    ;;
esac

EOF

cat > show_models.sh << 'EOF2'
#!/bin/bash
cd ~/PiClock
python3 -m venv venv
source venv/bin/activate
venv/bin/pip install --upgrade pip
python3 -m piper.download_voices
EOF2

################################################################################
#                                                                              #
#                     Rechte für Dateien und Ordner                            #
#                                                                              #
################################################################################

sudo chmod +x ./show_models.sh
sudo chmod +x ./gitclone.sh
[ -d /var/www/wecker/skripte ] && sudo chmod +x /var/www/wecker/skripte/setup_db.sh 2>/dev/null || true
if [ -d /var/www/wecker/html ]; then
    sudo chmod +x /var/www/wecker/html/Alle_skirpts.sh 2>/dev/null || true
fi
sudo chmod -R 755 /home/wecker
sudo chmod -R 755 /home/wecker/PiClock
sudo usermod -aG wecker www-data
sudo chmod o+rx /var/log/apache2/
sudo chmod o+rx /var/log/apache2/error.log 

################################################################################
#                                                                              #
#                   Ausführung des gitclone Skripts                            #
#                                                                              #
################################################################################

./gitclone.sh

################################################################################
#                                                                              #
#                   Ausführung des nächsten Skripts                            #
#                                                                              #
################################################################################

clear
info_msg "Alle_skirpts.sh wird jetzt ausgeführt"
if [ -f /var/www/wecker/html/Alle_skirpts.sh ]; then
    /var/www/wecker/html/Alle_skirpts.sh
else
    echo "Hinweis: Alle_skirpts.sh nicht gefunden. Bitte zuerst ./gitclone.sh ausführen."
fi 

####################################################################################################################
#                                                REBOOT-ABFRAGE                                                    #
####################################################################################################################

echo
read -p "Jetzt neu starten? (y/n): " ANSWER_REBOOT

if [[ "$ANSWER_REBOOT" =~ ^[Yy]$ ]]; then
    sudo reboot
else
    echo "Neustart übersprungen. Bitte später manuell rebooten!"
fi