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>
47 lines
1.7 KiB
Bash
Executable File
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))"
|