From 277bae3cf270fbc061e696646ec32a356dc09ced Mon Sep 17 00:00:00 2001 From: sascha Date: Sat, 27 Dec 2025 22:37:03 +0000 Subject: [PATCH] jdownloader/run.sh aktualisiert --- jdownloader/run.sh | 88 +++++++++++++++++++++++++--------------------- 1 file changed, 47 insertions(+), 41 deletions(-) diff --git a/jdownloader/run.sh b/jdownloader/run.sh index ff4720d..082f52d 100644 --- a/jdownloader/run.sh +++ b/jdownloader/run.sh @@ -1,41 +1,49 @@ #!/bin/sh -# Config-Pfad von JDownloader (im antlafarge image) -JD_DIR="/opt/JDownloader" -CFG_DIR="$JD_DIR/cfg" +echo "--- Starte JDownloader (JLesage Wrapper) ---" -echo "--- Starte JDownloader (Antlafarge Base) ---" +# 1. ORDNERSYSTEM ANPASSEN +# Das Image nutzt /config für Einstellungen. Wir biegen das auf /data um, +# damit Einstellungen erhalten bleiben. -# 1. Ordner vorbereiten -# Wir verlinken den internen Config-Ordner auf /data, damit Einstellungen -# (wie Download-Listen) auch nach einem Addon-Neustart erhalten bleiben. -if [ ! -d "/data/cfg" ]; then - mkdir -p /data/cfg +# Wenn /config ein echter Ordner ist (und kein Link), verschieben wir den Inhalt nach /data +# (nur beim allerersten Start relevant) +if [ ! -L "/config" ]; then + echo "Richte persistente Konfiguration ein..." + cp -rn /config/* /data/ 2>/dev/null + rm -rf /config + ln -s /data /config fi -# Wenn der cfg Ordner im Image existiert, aber kein Link ist, löschen wir ihn -if [ -d "$CFG_DIR" ] && [ ! -L "$CFG_DIR" ]; then - rm -rf "$CFG_DIR" -fi +# Berechtigungen korrigieren (jlesage nutzt user app:1000) +# Wir müssen sicherstellen, dass der User 'app' auf /data schreiben darf +chown -R 1000:1000 /data -# Link erstellen: Image-Config -> HA-Data-Storage -if [ ! -L "$CFG_DIR" ]; then - ln -s /data/cfg "$CFG_DIR" +# 2. DOWNLOAD ORDNER ANPASSEN +# Das Image nutzt /output. Wir biegen das auf /share/downloads um. +mkdir -p /share/downloads +if [ -d "/output" ] && [ ! -L "/output" ]; then + rm -rf /output fi +if [ ! -L "/output" ]; then + ln -s /share/downloads /output +fi +# Schreibrechte für Share sicherstellen +chmod 777 /share/downloads -# 2. Zugangsdaten aus Home Assistant lesen -EMAIL=$(jq --raw-output '.myjd_email' /data/options.json) -PASS=$(jq --raw-output '.myjd_password' /data/options.json) +# 3. ZUGANGSDATEN INJIZIEREN (Optional) +EMAIL=$(jq --raw-output '.myjd_email // empty' /data/options.json) +PASS=$(jq --raw-output '.myjd_password // empty' /data/options.json) DEVICE=$(jq --raw-output '.device_name' /data/options.json) +DARK_MODE=$(jq --raw-output '.dark_mode' /data/options.json) -echo "Konfiguriere MyJDownloader für: $EMAIL als '$DEVICE'" +CFG_FILE="/data/cfg/org.jdownloader.api.myjdownloader.MyJDownloaderSettings.json" +mkdir -p /data/cfg -# 3. Die JDownloader Settings-Datei manuell schreiben -# Das ist der Trick: Wir erzeugen die Datei, die JDownloader sonst erst nach Eingabe erstellt. -SETTINGS_FILE="$CFG_DIR/org.jdownloader.api.myjdownloader.MyJDownloaderSettings.json" - -# Wir schreiben ein minimales JSON File für die Anmeldung -cat < "$SETTINGS_FILE" +# Nur wenn Email UND Passwort ausgefüllt sind, schreiben wir die Config +if [ ! -z "$EMAIL" ] && [ ! -z "$PASS" ]; then + echo "Setze MyJDownloader Zugangsdaten..." + cat < "$CFG_FILE" { "email" : "$EMAIL", "password" : "$PASS", @@ -43,21 +51,19 @@ cat < "$SETTINGS_FILE" "autoconnectenabledmanual" : true } EOF - -# 4. Download Pfad auf /share/downloads biegen -mkdir -p /share/downloads -# Falls Downloads-Ordner existiert (und kein Link ist), weg damit -if [ -d "$JD_DIR/Downloads" ] && [ ! -L "$JD_DIR/Downloads" ]; then - rm -rf "$JD_DIR/Downloads" + # Wichtig: Datei muss dem Container-User gehören! + chown 1000:1000 "$CFG_FILE" fi -# Link setzen -ln -s /share/downloads "$JD_DIR/Downloads" -echo "Berechtigungen korrigieren..." -chown -R root:root "$JD_DIR" +# 4. DARK MODE (Optional) +# Setze Environment Variable für das jlesage Image +if [ "$DARK_MODE" = "true" ]; then + export DARK_MODE=1 +else + export DARK_MODE=0 +fi -# 5. Starten -echo "Starte Java..." -# Wir nutzen direkt java, um volle Kontrolle zu haben -cd $JD_DIR -exec java -Djava.awt.headless=true -jar JDownloader.jar \ No newline at end of file +# 5. STARTEN +# Wir rufen das originale Init-System des Containers auf +echo "Übergabe an jlesage init..." +exec /init \ No newline at end of file