jdownloader/run.sh aktualisiert
This commit is contained in:
parent
9195fcf8ce
commit
71e747593d
@ -1,28 +1,63 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
echo "Starte JDownloader Addon Wrapper..."
|
# Config-Pfad von JDownloader (im antlafarge image)
|
||||||
|
JD_DIR="/opt/JDownloader"
|
||||||
|
CFG_DIR="$JD_DIR/cfg"
|
||||||
|
|
||||||
# 1. Konfiguration aus der HA options.json lesen
|
echo "--- Starte JDownloader (Antlafarge Base) ---"
|
||||||
# Wir lesen die Werte und exportieren sie als Environment Variables
|
|
||||||
# die das jaymoulin Image erwartet (MYJD_USER, etc.)
|
|
||||||
export MYJD_USER=$(jq --raw-output '.myjd_email' /data/options.json)
|
|
||||||
export MYJD_PASSWORD=$(jq --raw-output '.myjd_password' /data/options.json)
|
|
||||||
export MYJD_DEVICE_NAME=$(jq --raw-output '.device_name' /data/options.json)
|
|
||||||
|
|
||||||
echo "Konfiguration geladen für User: $MYJD_USER"
|
# 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
|
||||||
|
fi
|
||||||
|
|
||||||
# 2. Download-Pfad umbiegen
|
# Wenn der cfg Ordner im Image existiert, aber kein Link ist, löschen wir ihn
|
||||||
# Das Image speichert standardmäßig in /opt/JDownloader/Downloads.
|
if [ -d "$CFG_DIR" ] && [ ! -L "$CFG_DIR" ]; then
|
||||||
# Wir wollen aber, dass es im HA Share Ordner landet.
|
rm -rf "$CFG_DIR"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Link erstellen: Image-Config -> HA-Data-Storage
|
||||||
|
if [ ! -L "$CFG_DIR" ]; then
|
||||||
|
ln -s /data/cfg "$CFG_DIR"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 2. Zugangsdaten aus Home Assistant lesen
|
||||||
|
EMAIL=$(jq --raw-output '.myjd_email' /data/options.json)
|
||||||
|
PASS=$(jq --raw-output '.myjd_password' /data/options.json)
|
||||||
|
DEVICE=$(jq --raw-output '.device_name' /data/options.json)
|
||||||
|
|
||||||
|
echo "Konfiguriere MyJDownloader für: $EMAIL als '$DEVICE'"
|
||||||
|
|
||||||
|
# 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"
|
||||||
|
{
|
||||||
|
"email" : "$EMAIL",
|
||||||
|
"password" : "$PASS",
|
||||||
|
"devicename" : "$DEVICE",
|
||||||
|
"autoconnectenabledmanual" : true
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# 4. Download Pfad auf /share/downloads biegen
|
||||||
mkdir -p /share/downloads
|
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"
|
||||||
|
fi
|
||||||
|
# Link setzen
|
||||||
|
ln -s /share/downloads "$JD_DIR/Downloads"
|
||||||
|
|
||||||
echo "Setze Download-Pfad auf /share/downloads..."
|
echo "Berechtigungen korrigieren..."
|
||||||
|
chown -R root:root "$JD_DIR"
|
||||||
|
|
||||||
# Falls der Ordner im Container existiert, löschen wir ihn und ersetzen ihn durch einen Link
|
# 5. Starten
|
||||||
rm -rf /opt/JDownloader/Downloads
|
echo "Starte Java..."
|
||||||
ln -s /share/downloads /opt/JDownloader/Downloads
|
# Wir nutzen direkt java, um volle Kontrolle zu haben
|
||||||
|
cd $JD_DIR
|
||||||
# 3. Das eigentliche Programm starten
|
exec java -Djava.awt.headless=true -jar JDownloader.jar
|
||||||
# Wir rufen den Befehl auf, den das Original-Image eigentlich ausführt
|
|
||||||
echo "Starte Java Prozess..."
|
|
||||||
exec java -Djava.awt.headless=true -jar /opt/JDownloader/JDownloader.jar
|
|
||||||
Loading…
x
Reference in New Issue
Block a user