jdownloader/run.sh aktualisiert
This commit is contained in:
parent
a6b9123d95
commit
277bae3cf2
@ -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 <<EOF > "$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 <<EOF > "$CFG_FILE"
|
||||
{
|
||||
"email" : "$EMAIL",
|
||||
"password" : "$PASS",
|
||||
@ -43,21 +51,19 @@ cat <<EOF > "$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
|
||||
# 5. STARTEN
|
||||
# Wir rufen das originale Init-System des Containers auf
|
||||
echo "Übergabe an jlesage init..."
|
||||
exec /init
|
||||
Loading…
x
Reference in New Issue
Block a user