84 lines
2.6 KiB
Bash

#!/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 <<EOF > "$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