#!/bin/sh
# preparar: instala, desde sus fuentes originales, lo que hace falta para
# compilar este proyecto y no esta: las bibliotecas nuestras (de
# simusol.org) y las externas (autotools, bison, pcre2, readline...), con
# bajar-paquetes de summapack. Es el "make prepare" del articulo de
# Sumapack (2011); va como script porque antes de autoreconf no hay
# Makefile. hacer-deb lo pone en las fuentes de cada proyecto; la copia
# unica esta en summapack (share/summapack/data/preparar). Etapa 3,
# 07/10/2026.
#
#   ./preparar [--prefijo DIR] [--prueba]
#   ./preparar && autoreconf -fi && ./configure && make && sudo make install
#
# --prefijo DIR   donde instalar lo que falta (/usr/local; ~/.local sin sudo)
# Lo que necesita el proyecto lo dice su .summa (BUILDDEPENDS).
set -eu
URL=${BAJAR_URL:-https://www.simusol.org/downloads}
case "${1:-}" in -h|--help) sed -n '2,15s/^# \{0,1\}//p' "$0"; exit 0 ;; esac
# el .summa del proyecto: en la carpeta actual (make dependencias) o en la
# de este script (./preparar en las fuentes)
summa=''
for aqui in "$(pwd)" "$(cd "$(dirname "$0")" && pwd)"; do
    summa=$(ls "$aqui"/*.summa 2>/dev/null | grep -v '_[0-9][^/]*\.summa$' | head -1 || true)
    [ -z "$summa" ] || break
done
[ -n "$summa" ] || { echo "preparar: no hay un .summa en $aqui" >&2; exit 1; }

# bajar-paquetes del servidor (coincide con como esta organizado); si no se
# puede, el de summapack instalado
tmp=$(mktemp -d)
trap 'rm -rf "$tmp"' EXIT
if command -v curl >/dev/null 2>&1 && curl -fsSL -o "$tmp/bajar-paquetes" "$URL/bajar-paquetes" 2>/dev/null; then
    bp="bash $tmp/bajar-paquetes"
elif command -v bajar-paquetes >/dev/null 2>&1; then
    bp=bajar-paquetes
else
    echo "preparar: hace falta curl (o summapack instalado)" >&2; exit 1
fi
BAJAR_URL=$URL $bp --para fuentes --instalar --solo-dependencias "$@" "$summa"
