#!/bin/zsh
set -euo pipefail

SERVER="f.uras.de"
KEY="SPg6wLSpXQqsjui5OR5X2mXCM+Z+xhzgrpkb1xqFw5o="
VERSION="1.4.9"

ARCH="$(uname -m)"
case "$ARCH" in
  arm64)
    RUSTDESK_ARCH="aarch64"
    ;;
  x86_64)
    RUSTDESK_ARCH="x86_64"
    ;;
  *)
    echo "Nicht unterstuetzte Mac-Architektur: $ARCH"
    exit 1
    ;;
esac

URL="https://github.com/rustdesk/rustdesk/releases/download/${VERSION}/rustdesk-${VERSION}-${RUSTDESK_ARCH}.dmg"
WORKDIR="$(mktemp -d)"
DMG="${WORKDIR}/rustdesk.dmg"
MOUNT="${WORKDIR}/mount"

cleanup() {
  hdiutil detach "$MOUNT" -quiet >/dev/null 2>&1 || true
  rm -rf "$WORKDIR"
}
trap cleanup EXIT

echo "RustDesk ${VERSION} fuer ${RUSTDESK_ARCH} wird geladen..."
curl -L "$URL" -o "$DMG"

mkdir -p "$MOUNT"
echo "DMG wird eingebunden..."
hdiutil attach "$DMG" -nobrowse -quiet -mountpoint "$MOUNT"

if [ ! -d "$MOUNT/RustDesk.app" ]; then
  echo "RustDesk.app wurde im DMG nicht gefunden."
  exit 1
fi

echo "RustDesk wird nach /Applications kopiert..."
sudo rm -rf "/Applications/RustDesk.app"
sudo cp -R "$MOUNT/RustDesk.app" "/Applications/RustDesk.app"

RUSTDESK_BIN="/Applications/RustDesk.app/Contents/MacOS/RustDesk"
if [ ! -x "$RUSTDESK_BIN" ]; then
  echo "RustDesk-Programmdatei wurde nicht gefunden: $RUSTDESK_BIN"
  exit 1
fi

echo "Uras-RustDesk-Serverdaten werden gesetzt..."
sudo "$RUSTDESK_BIN" --option custom-rendezvous-server "$SERVER"
sudo "$RUSTDESK_BIN" --option relay-server "$SERVER"
sudo "$RUSTDESK_BIN" --option key "$KEY"

echo "RustDesk wird gestartet..."
open -a RustDesk

echo ""
echo "Fertig."
echo "Wenn macOS fragt, bitte Bildschirmaufnahme und Bedienungshilfen fuer RustDesk erlauben."
