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:
@@ -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"]
|
||||
|
||||
Reference in New Issue
Block a user