#!/usr/bin/env bash
# ============================================================
#  Conexion de soporte  -  Linux
#  Ejecutar:  bash soporte-linux.sh
# ============================================================
#
# Para quien lo mantiene, NO para quien lo ejecuta:
#  - Prefiere el AppImage a un paquete del sistema: no necesita root, no toca
#    el gestor de paquetes y no deja nada instalado. En Linux "la distro" es la
#    variable que no controlamos, y el AppImage es lo unico que corre igual en
#    Ubuntu, Fedora, Mint o Arch.
#  - Sin servicio y sin password permanente: sesion ATENDIDA.
#  - AVISO GORDO: en una sesion **Wayland** el control remoto de RustDesk va a
#    medias (la captura depende de portales de escritorio y las teclas pueden no
#    llegar). Si la persona no puede cambiar a X11, hay que contar con que solo
#    se vea la pantalla. El script detecta y lo dice.

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
  exit 1
fi

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

case "$(uname -m)" in
  x86_64)          ARCH=x86_64 ;;
  aarch64|arm64)   ARCH=aarch64 ;;
  *) echo "  Arquitectura no soportada: $(uname -m)"; exit 1 ;;
esac

BIN="$HOME/.cache/conexion-soporte.AppImage"
if [ ! -x "$BIN" ]; then
  echo "  Descargando el programa (unos segundos)..."
  mkdir -p "$(dirname "$BIN")"
  curl -L -s -o "$BIN" "https://github.com/rustdesk/rustdesk/releases/download/$VERSION/rustdesk-$VERSION-$ARCH.AppImage"
  chmod +x "$BIN"
fi

CONF="$HOME/.config/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"

if [ "${XDG_SESSION_TYPE:-}" = "wayland" ]; then
  echo "  AVISO: esta sesion es Wayland. Es posible que se vea la pantalla"
  echo "  pero que el teclado y el raton remotos no funcionen. Si pasa,"
  echo "  cierra sesion y vuelve a entrar eligiendo 'Xorg' o 'X11'."
  echo
fi

cat <<'FIN'
  ============================================================
   Se abrira una ventana con DOS datos:

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

   Leeselos a Steven por telefono. Nada mas.
   Cuando termine el soporte, cierra esa ventana.
  ============================================================

FIN

"$BIN" >/dev/null 2>&1 &
