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.
This commit is contained in:
Sergio
2026-09-09 19:43:05 +00:00
parent 70a1593f57
commit e20a5f44d8
2 changed files with 10 additions and 5 deletions
+9 -4
View File
@@ -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
+1 -1
View File
@@ -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[@]}" \