From ca6c0faaa0e72a8205227b8a88246b8ae0bfe045 Mon Sep 17 00:00:00 2001 From: "Patrick Asmus (scriptos)" Date: Mon, 23 Mar 2026 21:47:22 +0100 Subject: [PATCH] =?UTF-8?q?fix:=20TS3-Konfiguration=20wird=20bei=20Update?= =?UTF-8?q?=20nicht=20mehr=20=C3=BCberschrieben?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/bin/RunTrackmaniaServer.sh | 34 +++++++++++++++++++++++-------- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/assets/bin/RunTrackmaniaServer.sh b/assets/bin/RunTrackmaniaServer.sh index c186b21..4bcbed8 100644 --- a/assets/bin/RunTrackmaniaServer.sh +++ b/assets/bin/RunTrackmaniaServer.sh @@ -368,10 +368,12 @@ fi # ============================================================ # XAseco: TeamSpeak3-Plugin Gateway aktualisieren (fuer bestehende Volumes) # ============================================================ -# Das Original-TS3-Gateway ist nicht mehr verfuegbar. Die eigene -# teamspeak3.xml mit dem Ersatz-Gateway wird in das Volume kopiert, -# falls sie fehlt oder noch das alte (nicht mehr erreichbare) Gateway -# referenziert. Gleichzeitig wird das Plugin reaktiviert, falls es +# Das Original-TS3-Gateway ist nicht mehr verfuegbar. Falls die +# teamspeak3.xml fehlt, wird sie aus dem Template kopiert. Falls sie +# bereits existiert (= Nutzer hat eigene TS3-Daten konfiguriert), +# werden NUR die Gateway-URLs (helperURL/logoURL) gezielt aktualisiert. +# Alle anderen Einstellungen (Server, Port, Channel etc.) bleiben +# erhalten. Gleichzeitig wird das Plugin reaktiviert, falls es # in einer frueheren Version auskommentiert wurde. # ============================================================ XASECO_DIR_TS3="/opt/tmserver/xaseco" @@ -379,16 +381,30 @@ TS3_XML="$XASECO_DIR_TS3/teamspeak3.xml" TS3_DEFAULT="/opt/tmserver/default-xaseco/teamspeak3.xml" TS3_PLUGINS_XML="$XASECO_DIR_TS3/plugins.xml" -# teamspeak3.xml aktualisieren: Kopieren wenn fehlend oder veraltet +# teamspeak3.xml aktualisieren: Kopieren wenn fehlend, Gateway-URLs gezielt patchen +# WICHTIG: Bei bestehender Datei wird NICHT die gesamte Datei ueberschrieben, +# damit benutzerdefinierte Einstellungen (Server, Port, Channel) erhalten bleiben. +# Nur die Gateway-URLs (helperURL/logoURL) werden aktualisiert, falls sie noch +# auf ein altes, nicht mehr erreichbares Gateway zeigen. if [ -f "$TS3_DEFAULT" ]; then if [ ! -f "$TS3_XML" ]; then echo "==> TeamSpeak3-Gateway: teamspeak3.xml fehlt, kopiere aus Template..." cp "$TS3_DEFAULT" "$TS3_XML" echo " teamspeak3.xml erfolgreich kopiert." - elif ! diff -q "$TS3_DEFAULT" "$TS3_XML" > /dev/null 2>&1; then - echo "==> TeamSpeak3-Gateway: teamspeak3.xml wird aktualisiert..." - cp "$TS3_DEFAULT" "$TS3_XML" - echo " teamspeak3.xml erfolgreich aktualisiert." + else + # Gateway-URLs aus dem Template auslesen + NEW_HELPER_URL=$(grep -oP '(?<=).*?(?=)' "$TS3_DEFAULT") + NEW_LOGO_URL=$(grep -oP '(?<=).*?(?=)' "$TS3_DEFAULT") + # Aktuelle URLs aus der bestehenden Datei auslesen + CUR_HELPER_URL=$(grep -oP '(?<=).*?(?=)' "$TS3_XML") + CUR_LOGO_URL=$(grep -oP '(?<=).*?(?=)' "$TS3_XML") + # Nur patchen, wenn sich die Gateway-URLs unterscheiden + if [ "$CUR_HELPER_URL" != "$NEW_HELPER_URL" ] || [ "$CUR_LOGO_URL" != "$NEW_LOGO_URL" ]; then + echo "==> TeamSpeak3-Gateway: Aktualisiere Gateway-URLs (Server-Einstellungen bleiben erhalten)..." + [ -n "$NEW_HELPER_URL" ] && sed -i "s|.*|${NEW_HELPER_URL}|" "$TS3_XML" + [ -n "$NEW_LOGO_URL" ] && sed -i "s|.*|${NEW_LOGO_URL}|" "$TS3_XML" + echo " Gateway-URLs erfolgreich aktualisiert." + fi fi fi