#!/bin/bash
# ============================================================
#  MyVesperbox Fernwartung - Mac einrichten
#  Stellt RustDesk auf unseren eigenen Server um.
# ============================================================

HOST="fernwartung.spproducts.de"
KEY="JMHCfp5dLQjH3rQEGfQiBDFNpaoJT8vb1vIMaZqEmEI="

clear
echo ""
echo "  ============================================"
echo "     MyVesperbox Fernwartung einrichten"
echo "  ============================================"
echo ""

# --- 1. Ist RustDesk installiert? ---------------------------
if [ ! -d "/Applications/RustDesk.app" ]; then
  echo "  FEHLER: RustDesk wurde nicht gefunden."
  echo ""
  echo "  Bitte zuerst das Programm installieren:"
  echo "  1. Die Datei 'Fernwartung-Mac.dmg' doppelklicken"
  echo "  2. Das RustDesk-Symbol in den Ordner 'Programme' ziehen"
  echo "  3. Danach diese Datei hier nochmal doppelklicken"
  echo ""
  read -p "  [Eingabetaste zum Schliessen]"
  exit 1
fi
echo "  [1/4] RustDesk gefunden."

# --- 2. Programm beenden ------------------------------------
osascript -e 'quit app "RustDesk"' >/dev/null 2>&1
killall RustDesk >/dev/null 2>&1
sleep 2
echo "  [2/4] Programm beendet."

# --- 3. Konfiguration schreiben -----------------------------
write_config() {
  local dir="$1"
  mkdir -p "$dir"
  cat > "$dir/RustDesk2.toml" <<TOML
rendezvous_server = '$HOST:21116'
nat_type = 1
serial = 0

[options]
custom-rendezvous-server = '$HOST'
key = '$KEY'
relay-server = '$HOST'
TOML
}

write_config "$HOME/Library/Preferences/com.carriez.RustDesk"
echo "  [3/4] Server-Adresse eingetragen."

# Der Hintergrunddienst laeuft als Systemnutzer und braucht
# die gleiche Einstellung. Dafuer wird das Mac-Passwort gebraucht.
echo ""
echo "  Letzter Schritt: macOS fragt gleich nach DEINEM Mac-Passwort."
echo "  Das ist normal - beim Tippen sieht man nichts. Einfach"
echo "  eingeben und Eingabetaste druecken."
echo ""
sudo mkdir -p /var/root/Library/Preferences/com.carriez.RustDesk
sudo bash -c "cat > /var/root/Library/Preferences/com.carriez.RustDesk/RustDesk2.toml" <<TOML
rendezvous_server = '$HOST:21116'
nat_type = 1
serial = 0

[options]
custom-rendezvous-server = '$HOST'
key = '$KEY'
relay-server = '$HOST'
TOML
sudo killall RustDesk >/dev/null 2>&1
echo "  [4/4] Hintergrunddienst eingestellt."

# --- 4. Programm starten + Berechtigungen -------------------
open -a RustDesk
sleep 3

echo ""
echo "  ============================================"
echo "     FERTIG - noch ZWEI Haekchen setzen"
echo "  ============================================"
echo ""
echo "  Apple verlangt zwei Freigaben, sonst bleibt der"
echo "  Bildschirm bei der Fernwartung schwarz."
echo ""
echo "  Es oeffnen sich gleich die Systemeinstellungen."
echo "  Bitte dort bei RustDesk den Schalter EINSCHALTEN:"
echo ""
echo "     1. Bildschirmaufnahme  ->  RustDesk  ->  AN"
echo "     2. Bedienungshilfen    ->  RustDesk  ->  AN"
echo ""
read -p "  [Eingabetaste - dann oeffnen die Einstellungen]"

open "x-apple.systempreferences:com.apple.preference.security?Privacy_ScreenCapture"
sleep 4
open "x-apple.systempreferences:com.apple.preference.security?Privacy_Accessibility"

echo ""
echo "  Wenn beide Haekchen gesetzt sind: RustDesk einmal"
echo "  beenden und neu starten. Dann Kim die 9-stellige"
echo "  ID durchgeben, die im Programm oben links steht."
echo ""
read -p "  [Eingabetaste zum Schliessen]"
