69 lines
2.0 KiB
Bash
69 lines
2.0 KiB
Bash
#!/bin/sh
|
|
|
|
echo "--- Starte JDownloader (JLesage Wrapper) ---"
|
|
|
|
# 1. ORDNERSYSTEM ANPASSEN
|
|
# Das Image nutzt /config für Einstellungen. Wir biegen das auf /data um,
|
|
# damit Einstellungen erhalten bleiben.
|
|
|
|
# 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
|
|
|
|
# Berechtigungen korrigieren (jlesage nutzt user app:1000)
|
|
# Wir müssen sicherstellen, dass der User 'app' auf /data schreiben darf
|
|
chown -R 1000:1000 /data
|
|
|
|
# 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
|
|
|
|
# 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)
|
|
|
|
CFG_FILE="/data/cfg/org.jdownloader.api.myjdownloader.MyJDownloaderSettings.json"
|
|
mkdir -p /data/cfg
|
|
|
|
# Nur wenn Email UND Passwort ausgefüllt sind, schreiben wir die Config
|
|
if [ ! -z "$EMAIL" ] && [ ! -z "$PASS" ]; then
|
|
echo "Setze MyJDownloader Zugangsdaten..."
|
|
cat <<EOF > "$CFG_FILE"
|
|
{
|
|
"email" : "$EMAIL",
|
|
"password" : "$PASS",
|
|
"devicename" : "$DEVICE",
|
|
"autoconnectenabledmanual" : true
|
|
}
|
|
EOF
|
|
# Wichtig: Datei muss dem Container-User gehören!
|
|
chown 1000:1000 "$CFG_FILE"
|
|
fi
|
|
|
|
# 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
|
|
# Wir rufen das originale Init-System des Containers auf
|
|
echo "Übergabe an jlesage init..."
|
|
exec /init |