#!/bin/bash
# ============================================================
#  INFORMATECH - Installation RustDesk MODE MAINTENANCE
#  Support permanent - service systemd actif - mot de passe fixe
# ============================================================
set -e

RD_SERVER="support.informatech.pro"
RD_KEY="niOvH+gf3Qw4mB5TVUjWSDGCxsCItkHk7nMKVC7tfMA="
RD_PASSWORD="Coucou Tata Yoyo"
RD_VERSION="1.3.8"

echo ""
echo "================================================"
echo "  INFORMATECH - Installation RustDesk Maintenance"
echo "================================================"
echo ""

# Vérifier root
if [ "$(id -u)" -ne 0 ]; then
    echo "Ce script doit être exécuté en root (sudo)."
    exit 1
fi

ARCH=$(uname -m)
case $ARCH in
    x86_64)  PKG_ARCH="x86_64" ;;
    aarch64) PKG_ARCH="aarch64" ;;
    armv7l)  PKG_ARCH="armv7" ;;
    *) echo "Architecture non supportée: $ARCH"; exit 1 ;;
esac

TMPDIR=$(mktemp -d)
cd "$TMPDIR"

echo "[1/5] Téléchargement de RustDesk ${RD_VERSION}..."
wget -q "https://github.com/rustdesk/rustdesk/releases/download/${RD_VERSION}/rustdesk-${RD_VERSION}-${PKG_ARCH}.deb" -O rustdesk.deb

echo "[2/5] Installation..."
DEBIAN_FRONTEND=noninteractive dpkg -i rustdesk.deb || apt-get install -f -y

echo "[3/5] Configuration du serveur..."
CONF_DIR="/root/.config/rustdesk"
mkdir -p "$CONF_DIR"
cat > "$CONF_DIR/RustDesk2.toml" << TOML
rendezvous_server = '${RD_SERVER}:21116'
nat_type = 1
serial = 0

[options]
custom-rendezvous-server = '${RD_SERVER}'
key = '${RD_KEY}'
relay-server = '${RD_SERVER}'
TOML

# Config aussi pour l'utilisateur courant si différent de root
if [ -n "$SUDO_USER" ]; then
    USER_HOME=$(getent passwd "$SUDO_USER" | cut -d: -f6)
    mkdir -p "$USER_HOME/.config/rustdesk"
    cp "$CONF_DIR/RustDesk2.toml" "$USER_HOME/.config/rustdesk/"
    chown -R "$SUDO_USER:$SUDO_USER" "$USER_HOME/.config/rustdesk"
fi

echo "[4/5] Définition du mot de passe..."
rustdesk --password "$RD_PASSWORD" 2>/dev/null || true

echo "[5/5] Activation du service systemd..."
systemctl enable rustdesk
systemctl restart rustdesk
sleep 3

RD_ID=$(rustdesk --get-id 2>/dev/null || echo "ID non disponible")

echo ""
echo "================================================"
echo "  Installation terminée !"
echo "================================================"
echo "  Serveur  : $RD_SERVER"
echo "  ID       : $RD_ID"
echo "  Mot de passe : $RD_PASSWORD"
echo "  (Changez-le avec : rustdesk --password NOUVEAUPASS)"
echo "================================================"
echo ""

rm -rf "$TMPDIR"
