Feat: Startet das Skript selbstständig neu, falls der PATH nicht passt
This commit is contained in:
parent
5226d50aa3
commit
f7156e5cdf
@ -7,6 +7,16 @@ source "$SCRIPT_DIR/../Utility/WakeOnLan.sh"
|
|||||||
source "$SCRIPT_DIR/../Utility/IsMounted.sh"
|
source "$SCRIPT_DIR/../Utility/IsMounted.sh"
|
||||||
source "$SCRIPT_DIR/../Utility/Log.sh"
|
source "$SCRIPT_DIR/../Utility/Log.sh"
|
||||||
|
|
||||||
|
# === KONSTANTEN ===
|
||||||
|
MAX_RESTARTS=2 # Maximale Anzahl an Neustarts
|
||||||
|
RESTART_COUNT_FILE="/tmp/hidrive_restart_count" # Datei zur Speicherung des Neustart-Zählers
|
||||||
|
|
||||||
|
# === Neustart-Zähler initialisieren ===
|
||||||
|
if [[ ! -f "$RESTART_COUNT_FILE" ]]; then
|
||||||
|
echo 0 >"$RESTART_COUNT_FILE"
|
||||||
|
fi
|
||||||
|
RESTART_COUNT=$(<"$RESTART_COUNT_FILE")
|
||||||
|
|
||||||
# === Hilfe-Seite ===
|
# === Hilfe-Seite ===
|
||||||
if [[ "$*" == *"-h"* ]]; then
|
if [[ "$*" == *"-h"* ]]; then
|
||||||
echo "Benutzung: $0 <DEVICE_MAC> <WEBDAV_URL> <NFS_PATH>"
|
echo "Benutzung: $0 <DEVICE_MAC> <WEBDAV_URL> <NFS_PATH>"
|
||||||
@ -62,39 +72,16 @@ check_webdav_installed() {
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
check_webdav_credentials() {
|
restart_script() {
|
||||||
if [[ ! -f "$WEBDAV_CREDENTIALS" ]]; then
|
if [[ $RESTART_COUNT -lt $MAX_RESTARTS ]]; then
|
||||||
log "Fehler: WebDAV-Passwortdatei nicht gefunden unter $WEBDAV_CREDENTIALS!"
|
RESTART_COUNT=$((RESTART_COUNT + 1))
|
||||||
return 1
|
echo "$RESTART_COUNT" >"$RESTART_COUNT_FILE"
|
||||||
fi
|
log "Neustart des Skripts (Versuch $RESTART_COUNT von $MAX_RESTARTS)..."
|
||||||
if ! grep -q "$MOUNT_POINT" "$WEBDAV_CREDENTIALS"; then
|
exec "$0" "$@"
|
||||||
log "Fehler: Keine Zugangsdaten für den Mountpoint $MOUNT_POINT in $WEBDAV_CREDENTIALS gefunden!"
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
mount_nfs() {
|
|
||||||
log "Versuche, NFS-Dateisystem von $NFS_SERVER einzubinden..."
|
|
||||||
mkdir -p "$MOUNT_POINT"
|
|
||||||
if mount -t nfs "$NFS_SERVER" "$MOUNT_POINT"; then
|
|
||||||
log "NFS erfolgreich unter $MOUNT_POINT eingebunden!"
|
|
||||||
return 0
|
|
||||||
else
|
else
|
||||||
log "Fehler beim Einbinden von NFS!"
|
log "Maximale Anzahl an Neustarts erreicht ($MAX_RESTARTS). Skript wird beendet."
|
||||||
return 1
|
rm -f "$RESTART_COUNT_FILE" # Neustart-Zähler zurücksetzen
|
||||||
fi
|
exit 1
|
||||||
}
|
|
||||||
|
|
||||||
mount_webdav() {
|
|
||||||
log "Versuche, WebDAV-Dateisystem von $WEBDAV_URL einzubinden..."
|
|
||||||
mkdir -p "$MOUNT_POINT"
|
|
||||||
if mount -t davfs "$WEBDAV_URL" "$MOUNT_POINT"; then
|
|
||||||
log "WebDAV erfolgreich unter $MOUNT_POINT eingebunden!"
|
|
||||||
return 0
|
|
||||||
else
|
|
||||||
log "Fehler beim Einbinden von WebDAV!"
|
|
||||||
return 1
|
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -103,9 +90,16 @@ mount_webdav() {
|
|||||||
# Prüfen, ob das Dateisystem bereits gemountet ist
|
# Prüfen, ob das Dateisystem bereits gemountet ist
|
||||||
if is_mounted "$MOUNT_POINT"; then
|
if is_mounted "$MOUNT_POINT"; then
|
||||||
log "Das Dateisystem ist bereits gemountet unter $MOUNT_POINT."
|
log "Das Dateisystem ist bereits gemountet unter $MOUNT_POINT."
|
||||||
|
rm -f "$RESTART_COUNT_FILE" # Neustart-Zähler zurücksetzen
|
||||||
exit 0 # Skript beenden, da kein weiteres Mounten erforderlich ist
|
exit 0 # Skript beenden, da kein weiteres Mounten erforderlich ist
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Prüfen, ob NFS oder WebDAV installiert ist
|
||||||
|
if ! check_nfs_installed && ! check_webdav_installed; then
|
||||||
|
log "Weder NFS noch WebDAV sind installiert. Neustart erforderlich."
|
||||||
|
restart_script "$@"
|
||||||
|
fi
|
||||||
|
|
||||||
# Wenn nicht gemountet, mit der Hauptlogik fortfahren
|
# Wenn nicht gemountet, mit der Hauptlogik fortfahren
|
||||||
log "Starte Wake-on-LAN-Prozess..."
|
log "Starte Wake-on-LAN-Prozess..."
|
||||||
DEVICE_IP=$(wake_device "$DEVICE_MAC")
|
DEVICE_IP=$(wake_device "$DEVICE_MAC")
|
||||||
@ -122,3 +116,6 @@ else
|
|||||||
mount_webdav
|
mount_webdav
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Neustart-Zähler zurücksetzen, wenn erfolgreich
|
||||||
|
rm -f "$RESTART_COUNT_FILE"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user