#!/bin/bash
#
# Instala «Asistencia Soluciones NTIC» en este equipo Linux (Debian, Ubuntu, Mint y derivadas), en un solo paso.
#
# Qué hace (léelo antes de ejecutarlo; es corto):
#   1. comprueba que sea Linux de 64 bits (Intel/AMD) con el sistema de paquetes de Debian (apt);
#   2. descarga el paquete .deb desde https://soporteti.solucionesntic.cl/descargar y comprueba que sea el de esta aplicación;
#   3. lo instala con apt (pide tu contraseña de administrador una vez, con sudo);
#   4. si hay escritorio, abre la aplicación: tu número de conexión aparece en la ventana.
#
# Para quitarla después:  sudo apt remove asistencia-ntic
# No toca nada más que el paquete de la aplicación y, si existía, su configuración de una inscripción anterior.
#
set -euo pipefail

BASE="https://soporteti.solucionesntic.cl"
PAQUETE="asistencia-ntic"

[ "$(uname -s)" = "Linux" ] || { echo "Este instalador es solo para Linux."; exit 1; }

case "$(uname -m)" in
  x86_64|amd64) ;;
  *) echo "Por ahora el paquete es para equipos de 64 bits Intel o AMD (x86_64). Este equipo es $(uname -m): avisa a Soluciones NTIC."; exit 1 ;;
esac

command -v dpkg >/dev/null 2>&1 && command -v apt-get >/dev/null 2>&1 || {
  echo "Este instalador es para Debian, Ubuntu y derivadas (usan apt). Si usas otra distribucion, avisa a Soluciones NTIC."
  exit 1
}

SUDO=""
if [ "$(id -u)" -ne 0 ]; then
  command -v sudo >/dev/null 2>&1 || { echo "Hace falta ser administrador (root) o tener sudo para instalar."; exit 1; }
  SUDO="sudo"
fi

TMP="$(mktemp -d)"
chmod 755 "${TMP}" # apt descarga sin privilegios y necesita poder leer el archivo
trap 'rm -rf "${TMP}"' EXIT

echo "▸ Descargando Asistencia Soluciones NTIC para Linux (64 bits)…"
curl -fL --progress-bar -o "${TMP}/asistencia-ntic.deb" "${BASE}/descargar/linux-deb"
chmod 644 "${TMP}/asistencia-ntic.deb"

echo "▸ Comprobando el paquete…"
NOMBRE="$(dpkg-deb --field "${TMP}/asistencia-ntic.deb" Package 2>/dev/null || true)"
[ "${NOMBRE}" = "${PAQUETE}" ] || { echo "El archivo descargado no es el paquete de Asistencia NTIC. Avisa a Soluciones NTIC."; exit 1; }

echo "▸ Instalando (te pedira tu contraseña de administrador)…"
${SUDO} apt-get install -y "${TMP}/asistencia-ntic.deb"

echo "✓ Instalada."

# Una inscripcion hecha contra otro servidor (por ejemplo, una prueba que ya no existe) deja al equipo «Sin conexion».
# Se borra solo ese archivo: al abrirse, la aplicacion se inscribe en este servidor y recibe su numero.
CONFIG="${XDG_CONFIG_HOME:-${HOME}/.config}/Asistencia NTIC/configuracion.json"
if [ -f "${CONFIG}" ] && ! grep -qF "${BASE}" "${CONFIG}"; then
  echo "▸ Este equipo estaba inscrito en otro servidor; se vuelve a inscribir en ${BASE}."
  rm -f "${CONFIG}"
fi

if [ -z "${ASISTENCIA_NO_ABRIR:-}" ] && { [ -n "${DISPLAY:-}" ] || [ -n "${WAYLAND_DISPLAY:-}" ]; }; then
  echo "▸ Abriendola. Tu numero de conexion aparecera en la ventana; dictaselo a tu tecnico."
  nohup asistencia-ntic >/dev/null 2>&1 &
else
  echo "▸ Abrela desde el menu de aplicaciones («Asistencia Soluciones NTIC»): tu numero de conexion aparecera en la ventana."
fi
