gobetween: renombrar el binario de main a gobetween

El módulo es `github.com/yyyar/gobetween/main` y el paquete main está en la
raíz, así que `go install` —que nombra el binario por el último elemento de la
ruta del módulo— lo dejaba como `/usr/bin/main`. Un `/usr/bin/main` en una
distro choca con cualquier cosa y no dice qué es.

La fase `install` que genera hammer para Go es `true` (el binario ya lo puso
`go install` en GOBIN=/out/usr/bin), así que definirla sólo añade el renombrado.

Los `test -x` no son adorno: si `go install` cambiara el nombre, sin ellos el
`mv` fallaría y se sellaría un artefacto SIN binario — regla 3 del repo, que
falle ruidosamente.

Verificado: /usr/bin/gobetween (33 M), arranca e imprime su versión, y no queda
ningún fichero `main` en el artefacto.
This commit is contained in:
Sergio
2026-08-27 17:36:44 +00:00
parent 65c1579571
commit a09cc9fd60
+12
View File
@@ -38,6 +38,18 @@ target = "x86_64-linux-musl"
link = "static"
flags = []
# ── El binario se llama `main` si no se renombra ────────────────────────────────────────────────
# El módulo es `github.com/yyyar/gobetween/main` y el paquete main está en la raíz, así que
# `go install` —que nombra el binario por el último elemento de la ruta del módulo— lo deja como
# **`/usr/bin/main`**. Un `/usr/bin/main` es inservible en una distro: choca con cualquier cosa y no
# dice qué es. La fase `install` que genera hammer para Go es `true` (el binario ya lo puso
# `go install` en GOBIN=/out/usr/bin), así que definirla acá sólo añade el renombrado.
#
# Los `test -x` no son adorno: si `go install` cambiara el nombre, sin ellos el `mv` fallaría y la
# receta sellaría un artefacto SIN binario. Regla 3 del repo: que falle ruidosamente.
[build.phases]
install = "test -x /out/usr/bin/main && mv /out/usr/bin/main /out/usr/bin/gobetween && test -x /out/usr/bin/gobetween"
# buildInputs de nix (no usados con CGO off): go
[deps]
build = ["go"]