tawasuyu

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…

TOML 1572Shell 203Rust 109Markdown 993728 Definiciones

⎇ 6bdbb17d480b3b1ab436fda87dce4ec4cb055c06 scripts/pin-recipes.sh Shell · 22 líneas · 1020 B Historia crudo

Etapa G Fase 2: tag→SHA — `hammer pin` (sello inmutable, ADR 0006) 1180bd915 · sergio ·

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}"