#!/bin/bash
# ============================================================
#  Conexion de soporte  -  macOS
#  Doble clic en este fichero. No instala nada permanente.
# ============================================================
#
# Para quien lo mantiene, NO para quien lo ejecuta:
#  - Extension .command a proposito: es lo unico que macOS abre con doble clic
#    en una Terminal. Un .sh se abriria en un editor.
#  - Sin servicio y sin password permanente: sesion ATENDIDA, la app muestra
#    una password de un solo uso que la persona lee por telefono.
#  - macOS pedira permisos (Screen Recording y Accessibility) y eso NO se puede
#    automatizar: es TCC. El script deja la app configurada y abierta, y el
#    texto de abajo explica los clics exactos.
#  - Gatekeeper: si la app se queda "no se puede abrir", el comando de
#    xattr de mas abajo la desbloquea.

SERVIDOR="support.metacortexlabs.io"
CLAVE="UQ0Pj3XwdMeCjzxsQyjM1P44ZSRv11Jy5dH54iq7f8c="
VERSION="1.4.9"

if [ "$CLAVE" = "UQ0Pj3XwdMeCjzxsQyjM1P44ZSRv11Jy5dH54iq7f8c=" ]; then
  echo; echo "  Este fichero esta incompleto: le falta la clave del servidor."
  echo "  No lo envies asi. Avisa a Steven."; echo
  read -n 1 -s -r -p "Pulsa una tecla para cerrar..."; exit 1
fi

set -e
echo; echo "  Preparando la conexion de soporte..."; echo

APP="/Applications/RustDesk.app"

if [ ! -d "$APP" ]; then
  # Los Mac con chip Apple usan aarch64; los viejos con Intel, x86_64.
  if [ "$(uname -m)" = "arm64" ]; then ARCH=aarch64; else ARCH=x86_64; fi
  DMG="$TMPDIR/conexion-soporte.dmg"
  echo "  Descargando el programa (unos segundos)..."
  curl -L -s -o "$DMG" "https://github.com/rustdesk/rustdesk/releases/download/$VERSION/rustdesk-$VERSION-$ARCH.dmg"
  MNT=$(hdiutil attach -nobrowse -readonly "$DMG" | tail -1 | awk '{print $NF}')
  cp -R "$MNT/RustDesk.app" /Applications/
  hdiutil detach "$MNT" >/dev/null
  rm -f "$DMG"
  # Quita la marca de "descargado de internet" para que no lo bloquee Gatekeeper.
  xattr -dr com.apple.quarantine "$APP" 2>/dev/null || true
fi

CONF="$HOME/Library/Preferences/com.carriez.RustDesk"
mkdir -p "$CONF"
cat > "$CONF/RustDesk2.toml" <<TOML
rendezvous_server = '$SERVIDOR'
nat_type = 0
serial = 0

[options]
custom-rendezvous-server = '$SERVIDOR'
key = '$CLAVE'
TOML
chmod 600 "$CONF/RustDesk2.toml"

open -a RustDesk

cat <<'FIN'

  ============================================================
   Se abrira una ventana con DOS datos:

     - Un numero de 9 cifras  (ID)
     - Una contrasena corta debajo

   Leeselos a Steven por telefono.

   La primera vez, el Mac pedira dos permisos para que Steven
   pueda ver y mover la pantalla:

     1. Aparecera un aviso -> pulsa "Abrir Ajustes del Sistema"
     2. En Privacidad y seguridad -> Grabacion de pantalla:
        activa RustDesk
     3. En Privacidad y seguridad -> Accesibilidad:
        activa RustDesk
     4. Cierra RustDesk y vuelve a abrirlo (importante)

   Cuando termine el soporte, cierra esa ventana.
  ============================================================

FIN
read -n 1 -s -r -p "Pulsa una tecla para cerrar esta ventana..."
