#!/usr/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

# Mantener el ayudante en cache. Una consulta condicional HTTP comprueba si
# cambio sin volver a transferirlo; el reemplazo es atomico para no dejar un
# script parcial si se corta la descarga.
command -v curl >/dev/null 2>&1 || { echo "installsumma: hace falta curl" >&2; exit 1; }
cache=${XDG_CACHE_HOME:-$HOME/.cache}/summapack/bootstrap
mkdir -p "$cache"
ayudante=$cache/bajar-paquetes
temporal=$(mktemp "$cache/.bajar-paquetes.XXXXXX")
trap 'rm -f "$temporal"' EXIT
if [ -s "$ayudante" ]; then
    curl -fsSL -z "$ayudante" -o "$temporal" "$URL/bajar-paquetes"
    [ ! -s "$temporal" ] || mv "$temporal" "$ayudante"
else
    curl -fsSL -o "$temporal" "$URL/bajar-paquetes"
    [ -s "$temporal" ] || { echo 'installsumma: la descarga del ayudante esta vacia' >&2; exit 1; }
    mv "$temporal" "$ayudante"
fi
chmod +x "$ayudante"
BAJAR_URL=$URL "$ayudante" --instalar summapack "$@"
