#!/bin/bash
set -x
set -euo pipefail
base_directory=$(cat base_directory)
user=$(cat minecraft-panel/user)

JAVA_PORT=$(cat $base_directory/minecraft-panel/port)
WEB_PORT=$(($JAVA_PORT - 1))

cd $base_directory/
mkdir update-temp
cd update-temp

if ! wget https://jlp-webseite.ddns.net/files/minecraft/minecraft-panel/minecraft-panel.zip; then
    echo "FEHLER: minecraft-panel.zip konnte nicht heruntergeladen werden!"
    cd $base_directory
    rm -rf update-temp
    exit 1
fi

if [ ! -f minecraft-panel.zip ]; then
    echo "FEHLER: ZIP Datei existiert nicht!"
    cd $base_directory
    rm -rf update-temp
    exit 1
fi

newSHA=$(sha256sum minecraft-panel.zip | awk '{print $1}')
echo "$newSHA"

oldSHA=$(sha256sum $base_directory/minecraft-panel/minecraft-panel.zip | awk '{print $1}')
echo "$oldSHA"

wget https://jlp-webseite.ddns.net/files/minecraft/minecraft-panel/version.json
newVersion=$(sha256sum version.json | awk '{print $1}')

oldVersion=$(sha256sum $base_directory/minecraft-panel/version.json | awk '{print $1}')

cd $base_directory

if [ "$newSHA" = "$oldSHA" ] && [ "$newVersion" = "$oldVersion" ]; then
    echo "Es ist kein Update vorhanden!"
    rm -rf update-temp
    exit 0
fi


rm -rf $base_directory/minecraft-panel-backup

#Kill Node Process (webserver mit backend)
if pgrep -f "server.js" > /dev/null; then
    echo "Stopping Node panel..."
    pkill -f "server.js"
    sleep 2
fi

#panel sichern
mv minecraft-panel minecraft-panel-backup

#neuer panel ordner
mkdir minecraft-panel

#Installation des neuen Panels
cd minecraft-panel

mv $base_directory/update-temp/minecraft-panel.zip $base_directory/minecraft-panel
unzip minecraft-panel.zip

sed -i "s/const PORT = 3000;/const PORT = $WEB_PORT;/" server.js
sed -i "s|/home/ubuntu|$base_directory|g" server.js

#Versionsupdate
wget https://jlp-webseite.ddns.net/files/minecraft/minecraft-panel/version.json


#Sachen aus altem panel integrieren
cp $base_directory/minecraft-panel-backup/ram $base_directory/minecraft-panel
cp $base_directory/minecraft-panel-backup/users.json $base_directory/minecraft-panel
cp $base_directory/minecraft-panel-backup/port $base_directory/minecraft-panel
cp $base_directory/minecraft-panel-backup/user $base_directory/minecraft-panel
cp $base_directory/minecraft-panel-backup/session_secret $base_directory/minecraft-panel



#post update
rm -rf $base_directory/update-temp
cd $base_directory/minecraft-panel

sudo -u $user screen -dmS mc-panel-node bash -c "node $base_directory/minecraft-panel/server.js"


if wget -q --fail -O update-new.sh https://jlp-webseite.ddns.net/files/minecraft/minecraft-panel/update.sh; then
    mv update-new.sh update.sh
    chmod +x update.sh
    echo "Update-Script erfolgreich aktualisiert!"
else
    echo "FEHLER: Konnte update.sh nicht herunterladen!"
    rm -f update-new.sh
fi


cd $base_directory || exit 1

