#!/bin/bash

# Pfade definieren
SCRIPT_PATH="/home/wecker/kill_firefox_offline.sh"
SERVICE_PATH="/etc/systemd/system/firefox-watchdog.service"

echo "--- Starte Installation: Firefox Watchdog ---"

# 1. Das Original-Skript erstellen
echo "Erstelle Skript: $SCRIPT_PATH"
cat << 'EOF' > "$SCRIPT_PATH"
#!/bin/bash

# Konfiguration
TARGET="8.8.8.8"      # Google DNS (sehr zuverlässig für Pings)
TIMEOUT=60            # Zeit in Sekunden, nach der Firefox geschlossen wird
CHECK_INTERVAL=5      # Alle 5 Sekunden prüfen

FAIL_COUNT=0
MAX_FAILS=$((TIMEOUT / CHECK_INTERVAL))

echo "Watchdog gestartet: Überprüfe Verbindung zu $TARGET..."

while true; do
    # Ein einzelner Ping mit 2 Sekunden Timeout
    if ping -c 1 -W 2 $TARGET > /dev/null 2>&1; then
        # Verbindung steht -> Zähler zurücksetzen
        if [ $FAIL_COUNT -gt 0 ]; then
            echo "$(date): Verbindung wiederhergestellt."
        fi
        FAIL_COUNT=0
    else
        # Verbindung fehlgeschlagen -> Zähler erhöhen
        ((FAIL_COUNT++))
        echo "$(date): Verbindung unterbrochen ($FAIL_COUNT/$MAX_FAILS)"
        
        # Wenn das Limit erreicht ist
        if [ $FAIL_COUNT -ge $MAX_FAILS ]; then
            echo "$(date): Offline für > $TIMEOUT Sekunden. Schließe Firefox..."
            
            # Firefox sauber beenden, falls das nicht geht: hart beenden
            pkill -15 firefox || pkill -9 firefox
            
            # Zähler zurücksetzen, damit er nicht sofort wieder killt
            FAIL_COUNT=0
        fi
    fi
    
    sleep $CHECK_INTERVAL
done
EOF

# 2. Berechtigungen setzen
chmod +x "$SCRIPT_PATH"
chown wecker:wecker "$SCRIPT_PATH"

# 3. Systemd Service erstellen (benötigt sudo)
echo "Erstelle Service-Datei: $SERVICE_PATH"
sudo bash -c "cat << 'EOF' > $SERVICE_PATH
[Unit]
Description=Firefox Network Watchdog
After=network.target

[Service]
ExecStart=/bin/bash $SCRIPT_PATH
Restart=always
User=wecker

[Install]
WantedBy=multi-user.target
EOF"

# 4. Service aktivieren und starten
echo "Aktiviere und starte Service..."
sudo systemctl daemon-reload
sudo systemctl enable firefox-watchdog.service
sudo systemctl restart firefox-watchdog.service

echo "--- Installation abgeschlossen! ---"
echo "Status prüfen mit: systemctl status firefox-watchdog.service"