#!/bin/bash

set -e

# On est sur une débian based ?
if ! command -v apt &>/dev/null; then
  echo "Ce script est prevu pour des systèmes basés sur debian/ubuntu"
  exit 1
fi

# Dossier temporaire de travail doc : https://manpages.ubuntu.com/manpages/trusty/fr/man1/mktemp.1.html
TMP_DIR=$(mktemp -d)
cd "$TMP_DIR"
echo "$TMP_DIR"

# On choppe les infos de la dernière version sur l'API publique de Github
echo "Récupération des infos de la dernière version de rustdesk"
RELEASE_JSON=$(curl -s https://api.github.com/repos/rustdesk/rustdesk/releases/latest)

# On grep pour ressortir que les browser_download_url 
# et dans tout ca, on grep les x86_64.deb, 
# on utilise cut pour séparer la ligne en champs avec " comme délimiteur et un récupère le 4eme champ qui corresponds à l'URL
# exemple de ligne du json :       "browser_download_url": "https://url"
# manuel de cut : https://www.geeksforgeeks.org/linux-unix/cut-command-linux-examples/

DEB_URL=$(echo "$RELEASE_JSON" | grep browser_download_url | grep 'x86_64\.deb' | cut -d '"' -f 4)

if [ -z "$DEB_URL" ]; then
  echo "Impossible de récupérer le lien du téléchargement"
  exit 1
fi

echo "Téléchargement de Rustdesk depuis : $DEB_URL"
curl -LO "$DEB_URL"

# on récupére le nom de fichier
DEB_FILE=$(basename "$DEB_URL")

# installation maggle. Le apt install -f est là pour réparer les dependance quil peut manquer 
echo "Installation de $DEB_FILE"
sudo dpkg -i "$DEB_FILE" || sudo apt install -f -y

echo "RustDesk est bien installé"

# karsherisation des fichiers temporaires :)
cd /
rm -rf "$TMP_DIR"
