Files
fernandoandClaude Sonnet 5 fb5bed22c2
CI / validate-and-build (push) Successful in 9s
CI / runme (push) Successful in 11s
chore: subir a clusterlog v0.2.0 (plantillas embebidas en el binario)
make templates ya no descarga un tarball aparte: extrae las plantillas
del binario ya descargado con "clusterlog templates extract" (ver
ADR-0006 del motor). fetch-engine.sh se simplifica a un solo modo
(binario); ya no hay asset de plantillas que descargar ni checksum
aparte que verificar para eso.

Probado de extremo a extremo contra el release v0.2.0 real: fetch del
binario, extracción de plantillas, sync, validate --require-zola y
zola build sobre el contenido real de MCPS, todo limpio.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-27 13:42:30 -06:00

47 lines
1.7 KiB
Bash
Executable File

#!/usr/bin/env bash
# Descarga el binario del release fijado del motor (fenandosr/clusterlog) y
# verifica su checksum contra checksums.txt del mismo release. Nunca usa
# `latest`: la versión viene de .clusterlog-version.
#
# Las plantillas ya no se descargan aparte (desde v0.2.0 del motor viajan
# embebidas en el propio binario): use "clusterlog templates extract"
# después de este script, ver el target "templates" del Makefile.
set -euo pipefail
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
ENGINE_REPO="${CLUSTERLOG_ENGINE_REPO:-fenandosr/clusterlog}"
VERSION="$(cat "$ROOT/.clusterlog-version")"
DEST="${1:?uso: fetch-engine.sh <destino-del-binario>}"
BASE_URL="https://github.com/${ENGINE_REPO}/releases/download/${VERSION}"
TMP="$(mktemp -d)"
trap 'rm -rf "$TMP"' EXIT
os="$(uname -s | tr '[:upper:]' '[:lower:]')"
arch="$(uname -m)"
case "$arch" in x86_64) arch=amd64 ;; aarch64) arch=arm64 ;; esac
asset="clusterlog_${os}_${arch}.tar.gz"
echo "Descargando $asset (clusterlog $VERSION, $ENGINE_REPO)..."
curl -fsSL -o "$TMP/checksums.txt" "$BASE_URL/checksums.txt"
curl -fsSL -o "$TMP/$asset" "$BASE_URL/$asset"
expected="$(grep " $asset\$" "$TMP/checksums.txt" | awk '{print $1}')"
if [ -z "$expected" ]; then
echo "ERROR: $asset no aparece en checksums.txt del release $VERSION" >&2
exit 1
fi
computed="$(sha256sum "$TMP/$asset" | awk '{print $1}')"
if [ "$computed" != "$expected" ]; then
echo "ERROR: checksum no coincide para $asset" >&2
echo " esperado: $expected" >&2
echo " obtenido: $computed" >&2
exit 1
fi
echo "Checksum verificado."
mkdir -p "$(dirname "$DEST")"
tar xzf "$TMP/$asset" -C "$TMP" clusterlog
install -m 0755 "$TMP/clusterlog" "$DEST"
echo "Binario en $DEST ($("$DEST" version 2>/dev/null || true))"