#!/usr/bin/env bash

set -euo pipefail

REPO="HakanSeven12/OpenCADStudio"
NOME_FICHEIRO="/tmp/OpenCADStudio-latest.snap"

echo "=== 1. Comprobando e instalando dependencias ==="
if dpkg -s snapd &> /dev/null && dpkg -s curl &> /dev/null && dpkg -s jq &> /dev/null; then
  echo "As dependencias (snapd, curl, jq) xa están instaladas."
else
  echo "Instalando dependencias necesarias (snapd, curl, jq)..."
  apt-get update
  apt-get install -y snapd curl jq
fi

echo "=== 2. Habilitando o servizo snapd e a compatibilidade ==="
systemctl enable --now snapd.service

# Crear enlace simbólico para compatibilidade cos paquetes clásicos (/snap)
if [ ! -d /snap ]; then
  ln -s /var/lib/snapd/snap /snap
fi

echo "=== 3. Obtendo a URL da última versión de OpenCADStudio ==="
URL_SNAP=$(curl -s "https://api.github.com/repos/${REPO}/releases/latest" \
  | jq -r '.assets[].browser_download_url | select(endswith(".snap"))' \
  | head -n 1)

if [ -z "$URL_SNAP" ] || [ "$URL_SNAP" = "null" ]; then
  echo "Erro: Non se puido atopar ningún arquivo .snap na última release de GitHub." >&2
  exit 1
fi

echo "Última versión detectada: $URL_SNAP"

echo "=== 4. Descargando OpenCADStudio ==="
curl -L -o "$NOME_FICHEIRO" "$URL_SNAP"

echo "=== 5. Instalando o paquete Snap local ==="
snap install --dangerous "$NOME_FICHEIRO"

# Limpeza do ficheiro temporal
rm -f "$NOME_FICHEIRO"

echo "=== Instalación completada ==="
