#!/bin/sh echo "--- Starte JDownloader (JLesage Wrapper mit Fixed Persistence) ---" # --- 1. PERSISTENZ REPARIEREN --- # Wir nutzen /data/cfg als den wahren Speicherort. mkdir -p /data/cfg # Wir prüfen, ob /config/cfg bereits ein Link ist. Wenn nicht, müssen wir es umbiegen. if [ ! -L "/config/cfg" ]; then echo "Richte persistenten 'cfg' Ordner ein..." # Falls schon Daten im Container-Ordner sind (vom Image), retten wir sie nach /data # aber nur, wenn /data/cfg noch leer ist. if [ -z "$(ls -A /data/cfg)" ]; then echo "Kopiere Standard-Konfiguration nach /data..." cp -rn /config/cfg/* /data/cfg/ 2>/dev/null fi # Jetzt löschen wir den FLÜCHTIGEN Ordner im Container rm -rf /config/cfg # Und erstellen den Link zum PERSISTENTEN Ordner ln -s /data/cfg /config/cfg fi # Berechtigungen: Der User 'app' (ID 1000) im Container muss /data gehören echo "Setze Berechtigungen für /data..." chown -R 1000:1000 /data chmod -R u+rw /data # --- 2. DOWNLOAD ORDNER --- # 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 # --- 3. ZUGANGSDATEN (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) # Die Datei liegt jetzt physikalisch in /data/cfg, aber wir sprechen sie via /config/cfg an CFG_FILE="/config/cfg/org.jdownloader.api.myjdownloader.MyJDownloaderSettings.json" # Wir schreiben die Config nur, wenn sie noch NICHT existiert oder leer ist, # damit wir deine manuellen Änderungen nicht bei jedem Neustart überschreiben. if [ ! -z "$EMAIL" ] && [ ! -z "$PASS" ]; then if [ ! -f "$CFG_FILE" ] || [ ! -s "$CFG_FILE" ]; then echo "Schreibe initiale MyJDownloader Zugangsdaten..." cat < "$CFG_FILE" { "email" : "$EMAIL", "password" : "$PASS", "devicename" : "$DEVICE", "autoconnectenabledmanual" : true } EOF chown 1000:1000 "$CFG_FILE" else echo "Konfigurationsdatei existiert bereits. Überspringe Auto-Config, um manuelle Änderungen zu schützen." fi fi # --- 4. DARK MODE --- if [ "$DARK_MODE" = "true" ]; then export DARK_MODE=1 else export DARK_MODE=0 fi # --- 5. STARTEN --- echo "Übergabe an jlesage init..." exec /init