gioser

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 188Rust 55Shell 30Markdown 281211 Definiciones

takana: --takana-bin, con --hammer-bin como alias

Era la ultima superficie de CLI que quedaba con el nombre viejo. Mismo patron
que forja: el canonico es el nuevo, el viejo sigue aceptandose como alias.
El default pasa a .../release/takana.

El DESTINO no se toca: el binario se sigue instalando en /usr/bin/hammer dentro
del rootfs del producto, porque ese rootfs se hashea. Moverlo cambia el hash del
producto y obliga a rehacer el baseline del selfhost — es etapa 6 y decision
aparte, no efecto colateral de renombrar un flag.

Verificado en el subcomando correcto (bootstrap builder, no product): las dos
formas se aceptan. 605 tests en verde.

e20a5f44d8cf6a6590b6e52c1a7235ca7db52fef · por Sergio · (hace 1 mes) · padre 70a1593f5 · ver el árbol en este commit

Delta semántico · 2

crates/takana-cli/src/main.rs

2 archivos · +10 −5

diff --git a/crates/takana-cli/src/main.rs b/crates/takana-cli/src/main.rs
index 5481d337..ce3df589 100644
--- a/crates/takana-cli/src/main.rs
+++ b/crates/takana-cli/src/main.rs
@@ -694,8 +694,13 @@ enum BootstrapCmd {
         #[arg(long, default_value = "recipes")]
         recipes: String,
         /// Binario `takana` estático a instalar en `/usr/bin/hammer`.
-        #[arg(long, default_value = "target/x86_64-unknown-linux-musl/release/hammer")]
-        hammer_bin: String,
+        ///
+        /// El DESTINO sigue siendo `/usr/bin/hammer` a propósito: está dentro del rootfs del
+        /// producto, que se hashea, así que moverlo cambia el hash del producto y obliga a
+        /// rehacer el baseline del selfhost (ADR 0016, etapa 6). Lo que se renombra acá es el
+        /// flag, con `--hammer-bin` como alias de compatibilidad.
+        #[arg(long, alias = "hammer-bin", default_value = "target/x86_64-unknown-linux-musl/release/takana")]
+        takana_bin: String,
         /// Toolchain del sandbox de build → `/toolchain` (rootfs Alpine de `.dev-fs`).
         #[arg(long, default_value = ".dev-fs/alpine")]
         toolchain: String,
@@ -1189,7 +1194,7 @@ fn main() -> anyhow::Result<()> {
                 seed_hash,
                 seed,
                 recipes,
-                hammer_bin,
+                takana_bin,
                 toolchain,
                 toolchain_tag,
                 ref_content,
@@ -1205,7 +1210,7 @@ fn main() -> anyhow::Result<()> {
                     seed_hash: takana_core::ArtifactHash::from_hex(seed_hash.trim_start_matches("b3:")),
                     seed_kind,
                     recipes_dir: std::path::PathBuf::from(recipes),
-                    hammer_bin: std::path::PathBuf::from(hammer_bin),
+                    hammer_bin: std::path::PathBuf::from(takana_bin),
                     toolchain_src: std::path::PathBuf::from(toolchain),
                     toolchain_tag,
                     ref_content: ref_content
diff --git a/scripts/selfhost-verify.sh b/scripts/selfhost-verify.sh
index dd4ccfbd..79419caa 100755
--- a/scripts/selfhost-verify.sh
+++ b/scripts/selfhost-verify.sh
@@ -219,7 +219,7 @@ for s in ${SWAPS:-}; do SWAP_ARGS+=(--swap "$s"); done
 say "ensamblar builder (toolchain in-rootfs + hammer baseline + ref${SWAP_ARGS:+ + swaps})"
 "$HAMMER" --store "$STORE" bootstrap builder \
     --stage1 "$ROOTFS_HASH" --seed-hash "$SEED_HASH" \
-    --hammer-bin "$HAMMER_BIN" \
+    --takana-bin "$HAMMER_BIN" \
     --toolchain "$TOOLCHAIN" --toolchain-tag "$TOOLCHAIN_TAG" \
     --ref-content "$REF" \
     "${SWAP_ARGS[@]}" \