sergio/takana
> Una distribución Linux construida con un laboratorio funcional y hermético en el > sótano, y una terminal mutable, clásica y anárquica en el piso de arriba — diseñada > desde el suelo para que una IA programadora entienda, modifique y co…
Etapa G Fase 2: tag→SHA — `hammer pin` (sello inmutable, ADR 0006)
1#!/bin/sh
2# pin-recipes.sh <recipe.toml...> — Etapa G Fase 2 (sello inmutable): ancla en LOTE el `commit`
3# de cada receta git, resolviendo tags flotantes → SHA vía `git ls-remote` (ADR 0006). Los tarball
4# (ya anclados por sha256) y las que ya tienen SHA se saltean. El laboratorio se vuelve determinista
5# al estilo Nix: cada origen queda fijado a un punto inmutable de la historia.
6#
7# Ej: scripts/pin-recipes.sh recipes/*.toml | find recipes -name '*.toml' | xargs scripts/pin-recipes.sh
8set -eu
9HAMMER="${HAMMER:-cargo run -q -p hammer-cli --}"
10[ "$#" -gt 0 ] || { echo "uso: pin-recipes.sh <recipe.toml...>" >&2; exit 1; }
11
12pinned=0; skipped=0; failed=""
13for r in "$@"; do
14 if $HAMMER pin "$r" 2>&1 | grep -q '→'; then
15 pinned=$((pinned + 1))
16 elif $HAMMER pin "$r" >/dev/null 2>&1; then
17 skipped=$((skipped + 1)) # ya anclado / tarball
18 else
19 failed="$failed $(basename "$r")"
20 fi
21done
22echo "pin: $pinned anclados, $skipped salteados (ya-SHA/tarball).${failed:+ FALLARON:$failed}"