#!/bin/sh
# preparar: prepara las dependencias de construccion del proyecto. Las de
# Simusol se descargan como fuentes, se convierten en paquetes locales y se
# instalan con el gestor; las externas se piden al gestor de la distribucion.
# El empaquetado local usa DEB en Debian/Ubuntu y RPM en Fedora/openSUSE.
# Otras distribuciones se rechazan sin instalar directamente con make.
# hacer-pkg lo pone en las fuentes de cada proyecto; la copia unica esta en
# summapack/share/summapack/data/preparar.
#
#   ./preparar [--prueba]
#
# No instala el proyecto actual. --prefijo no corresponde a paquetes nativos.
# 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; }

# Usar primero el instalador de las fuentes actuales o el instalado. El
# bootstrap publicado puede ser anterior; solo acudir a el si faltan ambos.
tmp=$(mktemp -d)
trap 'rm -rf "$tmp"' EXIT
if [ -f "$(dirname "$summa")/bin/bajar-paquetes" ]; then
    bp="bash $(dirname "$summa")/bin/bajar-paquetes"
elif command -v bajar-paquetes >/dev/null 2>&1; then
    bp=bajar-paquetes
elif 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"
else
    echo "preparar: hace falta curl (o summapack instalado)" >&2; exit 1
fi
BAJAR_URL=$URL $bp --para fuentes --instalar --solo-dependencias "$@" "$summa"
