#!/usr/bin/env bash # Instalador para Linux y macOS. # # Solo hace falta para RECONSTRUIR los datos. Para USAR el visor no se instala # nada: se abre out/visor.html en cualquier navegador. set -euo pipefail cd "$(dirname "${BASH_SOURCE[0]}")" echo "== RAVE SCOUT / EXPLORER ==" # --- python --- PY="" for c in python3.12 python3.11 python3.10 python3; do if command -v "$c" >/dev/null 2>&1; then v=$("$c" -c 'import sys;print(sys.version_info>=(3,9))' 2>/dev/null || echo False) [ "$v" = "True" ] && { PY="$c"; break; } fi done [ -n "$PY" ] || { echo "Falta Python 3.9 o superior."; echo \ " Debian/Ubuntu: sudo apt install python3 python3-venv"; \ echo " Fedora: sudo dnf install python3"; \ echo " macOS: brew install python"; exit 1; } echo "Python: $($PY -V)" if ! "$PY" -c "import venv" >/dev/null 2>&1; then echo "Falta el módulo venv. En Debian/Ubuntu: sudo apt install python3-venv"; exit 1 fi # --- entorno --- [ -d .venv ] || "$PY" -m venv .venv ./.venv/bin/pip -q install --upgrade pip echo "Instalando dependencias…" ./.venv/bin/pip -q install -r requirements.txt # --- comprobación --- ./.venv/bin/python - <<'EOF' import importlib, sys faltan = [m for m in ("numpy","scipy","rasterio","osmium","shapely","pyproj", "requests","PIL") if not importlib.util.find_spec(m)] if faltan: print("FALTAN:", ", ".join(faltan)); sys.exit(1) print("Dependencias correctas.") EOF echo echo "Listo." echo " Abrir el visor: ./abrir.sh" echo " Ver países: ./.venv/bin/python src/regions.py" echo " Reconstruir España: make all" echo " Otro país: REGION=pt make all"