#!/usr/bin/env bash
# OSRM-Preprocessing für den Österreich-Extrakt (extract -> partition -> customize).
# Erzeugt das .osrm-Set im OSRM-Daten-Volume, bevor `osrm-routed` startet.
#
# Verwendung:
#   scripts/prepare-osm-data.sh
#   (oder: make -C infra/geo data)
#
# Hinweis: Läuft NICHT in der CI/Sandbox — benötigt Docker, Netzugriff zum
# Geofabrik-Download und mehrere GB RAM/Disk. Dauer: mehrere Minuten bis Stunden.
set -euo pipefail

DATA_DIR="${OSRM_DATA_DIR:-./infra/geo/data}"
PBF_URL="${PBF_URL:-https://download.geofabrik.de/europe/austria-latest.osm.pbf}"
PBF_FILE="austria-latest.osm.pbf"
OSM_BASENAME="austria-latest"
OSRM_IMAGE="${OSRM_IMAGE:-ghcr.io/project-osrm/osrm-backend:latest}"
PROFILE="/opt/car.lua"

mkdir -p "${DATA_DIR}"

if [[ ! -f "${DATA_DIR}/${PBF_FILE}" ]]; then
  echo "Lade OSM-Extrakt: ${PBF_URL}"
  curl -fSL "${PBF_URL}" -o "${DATA_DIR}/${PBF_FILE}"
fi

run_osrm() {
  docker run --rm -t -v "$(pwd)/${DATA_DIR}:/data" "${OSRM_IMAGE}" "$@"
}

echo "1/3 extract"
run_osrm osrm-extract -p "${PROFILE}" "/data/${PBF_FILE}"
echo "2/3 partition"
run_osrm osrm-partition "/data/${OSM_BASENAME}.osrm"
echo "3/3 customize"
run_osrm osrm-customize "/data/${OSM_BASENAME}.osrm"

echo "Fertig. .osrm-Set liegt in ${DATA_DIR}."
echo "Daten ins OSRM-Volume kopieren oder Volume auf ${DATA_DIR} mappen."
