#!/bin/sh
# installsumma: instala summapack y, si se piden, otros proyectos de Simusol
# con sus dependencias (el Bootstrap del articulo de 2011). Esta en la raiz
# del servidor de descargas, porque es lo que se necesita para instalar
# cualquier paquete, junto con bajar-paquetes, que usa (make subir-bootstrap
# en summapack los sube). Se usa asi:
#
#   curl -fsSLO https://www.simusol.org/downloads/installsumma.sh
#   sh installsumma.sh [--prueba] [--para fuentes|deb|fedora|suse|arch|rpm|tgz] [PROYECTO[/PAQUETE]...]
#
#   sh installsumma.sh               solo summapack
#   sh installsumma.sh tabular2      summapack y Tabular, con lo que necesita
#   sh installsumma.sh --para fuentes --inestable simplot
#       fuentes actuales de Simplot y de cada proyecto Simusol requerido;
#       dependencias externas con el gestor de paquetes del sistema
#
# Sin --para, muestra con numeros lo que hay (deb para Ubuntu y Debian,
# fedora, suse, arch...) y pregunta.
#
# Baja bajar-paquetes del mismo servidor y con el instala,
# en una sola vez, summapack (summapack, libmem-util0 y libmem-util-dev) y
# lo pedido, con las dependencias que sean de nuestros proyectos,
# comprobando los md5. En modo fuentes tambien compila las dependencias
# de Simusol desde fuentes; las del sistema las trae apt/dnf/etc.
# Reescrito el 07/10/2026: el anterior bajaba el tar de las fuentes sin
# comprobar el certificado, averiguando la IP con 8.8.8.8, y lo compilaba.
set -eu

URL=${BAJAR_URL:-https://www.simusol.org/downloads}
case "${1:-}" in
    -h|--help) sed -n '2,24s/^# \{0,1\}//p' "$0"; exit 0 ;;
    --version) echo "installsumma 6"; exit 0 ;;
esac

# bajar-paquetes siempre del servidor (de la raiz), aunque haya uno
# instalado: tiene que coincidir con como esta organizado
command -v curl >/dev/null 2>&1 || { echo "installsumma: hace falta curl" >&2; exit 1; }
tmp=$(mktemp -d)
trap 'rm -rf "$tmp"' EXIT
curl -fsSL -o "$tmp/bajar-paquetes" "$URL/bajar-paquetes"
chmod +x "$tmp/bajar-paquetes"
BAJAR_URL=$URL "$tmp/bajar-paquetes" --instalar summapack "$@"
