Etapa G frente Go: 10 recetas Go al corpus (repo 282->292) + fix GOWORK

Aplica el patron de amfora a la escoria Go. Build-yield 11/13:
- raiz: croc/gron/jump/gtrash/walk/qrcp (go build .)
- main en ./cmd/<x>: cheat/dnsx/dyff + miller (binario mlr)
Todos estaticos y corren (mlr 6.18.1, croc v10.4.4, cheat 4.5.0, ...).

fetch.rs: vendor_go_deps ahora setea GOWORK=off (go mod vendor aborta en
modo workspace si el arbol trae go.work).

Diferidas 2 (casos especiales): csvtk (go.mod en subdir, el vendor no corre
en /src) y git-town (go.work multimodulo -> inconsistent vendoring; necesita
go work vendor, no go mod vendor).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-26 05:06:21 -04:00
co-authored by Claude Opus 4.8
parent 4291b2adeb
commit 74d5ab0b78
11 changed files with 227 additions and 0 deletions
+3
View File
@@ -251,6 +251,9 @@ pub fn vendor_go_deps(src: &Path) -> hammer_core::Result<()> {
.args(["mod", "vendor"])
.env("GOFLAGS", "-mod=mod")
.env("GOTOOLCHAIN", "local")
// `go mod vendor` aborta en modo workspace (si el árbol trae go.work). Lo apagamos para
// vendorear contra el go.mod del módulo raíz (que es lo que el build compila).
.env("GOWORK", "off")
.stdout(Stdio::inherit())
.stderr(Stdio::inherit())
.output()