jdownloader/run.sh aktualisiert
This commit is contained in:
parent
277bae3cf2
commit
99886e7a9e
@ -1,25 +1,36 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
echo "--- Starte JDownloader (JLesage Wrapper) ---"
|
echo "--- Starte JDownloader (JLesage Wrapper mit Fixed Persistence) ---"
|
||||||
|
|
||||||
# 1. ORDNERSYSTEM ANPASSEN
|
# --- 1. PERSISTENZ REPARIEREN ---
|
||||||
# Das Image nutzt /config für Einstellungen. Wir biegen das auf /data um,
|
# Wir nutzen /data/cfg als den wahren Speicherort.
|
||||||
# damit Einstellungen erhalten bleiben.
|
mkdir -p /data/cfg
|
||||||
|
|
||||||
# Wenn /config ein echter Ordner ist (und kein Link), verschieben wir den Inhalt nach /data
|
# Wir prüfen, ob /config/cfg bereits ein Link ist. Wenn nicht, müssen wir es umbiegen.
|
||||||
# (nur beim allerersten Start relevant)
|
if [ ! -L "/config/cfg" ]; then
|
||||||
if [ ! -L "/config" ]; then
|
echo "Richte persistenten 'cfg' Ordner ein..."
|
||||||
echo "Richte persistente Konfiguration ein..."
|
|
||||||
cp -rn /config/* /data/ 2>/dev/null
|
# Falls schon Daten im Container-Ordner sind (vom Image), retten wir sie nach /data
|
||||||
rm -rf /config
|
# aber nur, wenn /data/cfg noch leer ist.
|
||||||
ln -s /data /config
|
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
|
fi
|
||||||
|
|
||||||
# Berechtigungen korrigieren (jlesage nutzt user app:1000)
|
# Berechtigungen: Der User 'app' (ID 1000) im Container muss /data gehören
|
||||||
# Wir müssen sicherstellen, dass der User 'app' auf /data schreiben darf
|
echo "Setze Berechtigungen für /data..."
|
||||||
chown -R 1000:1000 /data
|
chown -R 1000:1000 /data
|
||||||
|
chmod -R u+rw /data
|
||||||
|
|
||||||
# 2. DOWNLOAD ORDNER ANPASSEN
|
|
||||||
|
# --- 2. DOWNLOAD ORDNER ---
|
||||||
# Das Image nutzt /output. Wir biegen das auf /share/downloads um.
|
# Das Image nutzt /output. Wir biegen das auf /share/downloads um.
|
||||||
mkdir -p /share/downloads
|
mkdir -p /share/downloads
|
||||||
if [ -d "/output" ] && [ ! -L "/output" ]; then
|
if [ -d "/output" ] && [ ! -L "/output" ]; then
|
||||||
@ -31,18 +42,21 @@ fi
|
|||||||
# Schreibrechte für Share sicherstellen
|
# Schreibrechte für Share sicherstellen
|
||||||
chmod 777 /share/downloads
|
chmod 777 /share/downloads
|
||||||
|
|
||||||
# 3. ZUGANGSDATEN INJIZIEREN (Optional)
|
|
||||||
|
# --- 3. ZUGANGSDATEN (Optional) ---
|
||||||
EMAIL=$(jq --raw-output '.myjd_email // empty' /data/options.json)
|
EMAIL=$(jq --raw-output '.myjd_email // empty' /data/options.json)
|
||||||
PASS=$(jq --raw-output '.myjd_password // empty' /data/options.json)
|
PASS=$(jq --raw-output '.myjd_password // empty' /data/options.json)
|
||||||
DEVICE=$(jq --raw-output '.device_name' /data/options.json)
|
DEVICE=$(jq --raw-output '.device_name' /data/options.json)
|
||||||
DARK_MODE=$(jq --raw-output '.dark_mode' /data/options.json)
|
DARK_MODE=$(jq --raw-output '.dark_mode' /data/options.json)
|
||||||
|
|
||||||
CFG_FILE="/data/cfg/org.jdownloader.api.myjdownloader.MyJDownloaderSettings.json"
|
# Die Datei liegt jetzt physikalisch in /data/cfg, aber wir sprechen sie via /config/cfg an
|
||||||
mkdir -p /data/cfg
|
CFG_FILE="/config/cfg/org.jdownloader.api.myjdownloader.MyJDownloaderSettings.json"
|
||||||
|
|
||||||
# Nur wenn Email UND Passwort ausgefüllt sind, schreiben wir die Config
|
# 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 [ ! -z "$EMAIL" ] && [ ! -z "$PASS" ]; then
|
||||||
echo "Setze MyJDownloader Zugangsdaten..."
|
if [ ! -f "$CFG_FILE" ] || [ ! -s "$CFG_FILE" ]; then
|
||||||
|
echo "Schreibe initiale MyJDownloader Zugangsdaten..."
|
||||||
cat <<EOF > "$CFG_FILE"
|
cat <<EOF > "$CFG_FILE"
|
||||||
{
|
{
|
||||||
"email" : "$EMAIL",
|
"email" : "$EMAIL",
|
||||||
@ -51,19 +65,20 @@ if [ ! -z "$EMAIL" ] && [ ! -z "$PASS" ]; then
|
|||||||
"autoconnectenabledmanual" : true
|
"autoconnectenabledmanual" : true
|
||||||
}
|
}
|
||||||
EOF
|
EOF
|
||||||
# Wichtig: Datei muss dem Container-User gehören!
|
|
||||||
chown 1000:1000 "$CFG_FILE"
|
chown 1000:1000 "$CFG_FILE"
|
||||||
|
else
|
||||||
|
echo "Konfigurationsdatei existiert bereits. Überspringe Auto-Config, um manuelle Änderungen zu schützen."
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 4. DARK MODE (Optional)
|
|
||||||
# Setze Environment Variable für das jlesage Image
|
# --- 4. DARK MODE ---
|
||||||
if [ "$DARK_MODE" = "true" ]; then
|
if [ "$DARK_MODE" = "true" ]; then
|
||||||
export DARK_MODE=1
|
export DARK_MODE=1
|
||||||
else
|
else
|
||||||
export DARK_MODE=0
|
export DARK_MODE=0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 5. STARTEN
|
# --- 5. STARTEN ---
|
||||||
# Wir rufen das originale Init-System des Containers auf
|
|
||||||
echo "Übergabe an jlesage init..."
|
echo "Übergabe an jlesage init..."
|
||||||
exec /init
|
exec /init
|
||||||
Loading…
x
Reference in New Issue
Block a user