#!/bin/bash
#
# Installation et configuration RustDesk pour le serveur de support LSD
# Usage : bash install-rustdesk-lsd.sh
#

set -e

# ---- Paramètres ----
DEB_URL="https://rustdesk.lasallesaintdenis.com/downloads/rustdesk-1.4.6-x86_64.deb"
DEB_FILE="/tmp/rustdesk-1.4.6-x86_64.deb"

ID_SERVER="rustdesk.lasallesaintdenis.com"
PUB_KEY="t9PNm5wfCH7tlA2xSbz28GWFTTzrOV31mU4X3qauCzM="

# ---- Couleurs (pour les messages) ----
GREEN='\033[0;32m'
BLUE='\033[0;34m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m'

echo -e "${BLUE}═══════════════════════════════════════════════════${NC}"
echo -e "${BLUE}  Installation RustDesk – Support LSD${NC}"
echo -e "${BLUE}═══════════════════════════════════════════════════${NC}"
echo ""

# ---- Vérification root/sudo ----
if [ "$EUID" -ne 0 ] && ! sudo -n true 2>/dev/null; then
  echo -e "${YELLOW}Ce script a besoin des droits sudo. Saisissez votre mot de passe si demandé.${NC}"
fi

# ---- Téléchargement du paquet ----
echo -e "${BLUE}[1/3]${NC} Téléchargement du paquet RustDesk..."
if [ ! -f "$DEB_FILE" ]; then
  if command -v curl &>/dev/null; then
    curl -fsSL -o "$DEB_FILE" "$DEB_URL"
  elif command -v wget &>/dev/null; then
    wget -q -O "$DEB_FILE" "$DEB_URL"
  else
    echo -e "${RED}Erreur : ni curl ni wget n'est installé.${NC}"
    exit 1
  fi
fi
echo -e "${GREEN}      ✓ Paquet téléchargé${NC}"

# ---- Installation ----
echo -e "${BLUE}[2/3]${NC} Installation..."
sudo apt-get install -y "$DEB_FILE" >/dev/null 2>&1 || {
  echo -e "${YELLOW}      Tentative avec dpkg + correction des dépendances...${NC}"
  sudo dpkg -i "$DEB_FILE" || true
  sudo apt-get install -f -y >/dev/null 2>&1
}
echo -e "${GREEN}      ✓ RustDesk installé${NC}"

# ---- Configuration ----
echo -e "${BLUE}[3/3]${NC} Configuration du serveur LSD..."

CONFIG_CONTENT="rendezvous_server = '${ID_SERVER}'
nat_type = 0
serial = 0

[options]
custom-rendezvous-server = '${ID_SERVER}'
key = '${PUB_KEY}'
relay-server = ''
api-server = ''"

# Config utilisateur (mode interactif)
USER_DIR="$HOME/.config/rustdesk"
mkdir -p "$USER_DIR"
echo "$CONFIG_CONTENT" > "$USER_DIR/RustDesk2.toml"

# Config root (mode service, pour l'accès non assisté)
sudo mkdir -p /root/.config/rustdesk
echo "$CONFIG_CONTENT" | sudo tee /root/.config/rustdesk/RustDesk2.toml >/dev/null

echo -e "${GREEN}      ✓ Configuration appliquée${NC}"

# ---- Nettoyage ----
rm -f "$DEB_FILE"

# ---- Fin ----
echo ""
echo -e "${GREEN}═══════════════════════════════════════════════════${NC}"
echo -e "${GREEN}  Installation terminée${NC}"
echo -e "${GREEN}═══════════════════════════════════════════════════${NC}"
echo ""
echo -e "  Lancez RustDesk avec : ${BLUE}rustdesk${NC}"
echo -e "  Ou depuis le menu Activités"
echo ""
echo -e "  En cas de souci, contactez le service IT"
echo ""
