From 9c1b52268906af92bd97cb2e78f93284801d961d Mon Sep 17 00:00:00 2001 From: Ophestra Date: Sun, 8 Mar 2026 17:56:22 +0900 Subject: [PATCH] internal/rosa/hakurei: optional hostname tool This makes it more efficient to reuse the helper for partial builds. Signed-off-by: Ophestra --- internal/rosa/hakurei.go | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/internal/rosa/hakurei.go b/internal/rosa/hakurei.go index 947ed1d..b584707 100644 --- a/internal/rosa/hakurei.go +++ b/internal/rosa/hakurei.go @@ -2,7 +2,19 @@ package rosa import "hakurei.app/internal/pkg" -func (t Toolchain) newHakurei(suffix, script string) pkg.Artifact { +func (t Toolchain) newHakurei( + suffix, script string, + withHostname bool, +) pkg.Artifact { + hostname := ` +echo '# Building test helper (hostname).' +go build -v -o /bin/hostname /usr/src/hostname/main.go +echo +` + if !withHostname { + hostname = "" + } + return t.New("hakurei"+suffix+"-"+hakureiVersion, 0, []pkg.Artifact{ t.Load(Go), @@ -29,17 +41,12 @@ func (t Toolchain) newHakurei(suffix, script string) pkg.Artifact { "CGO_ENABLED=1", "GOCACHE=/tmp/gocache", "CC=clang -O3 -Werror", - }, ` -echo '# Building test helper (hostname).' -go build -v -o /bin/hostname /usr/src/hostname/main.go -echo - -chmod -R +w /usr/src/hakurei + }, hostname+` cd /usr/src/hakurei HAKUREI_VERSION='v`+hakureiVersion+`' `+script, pkg.Path(AbsUsrSrc.Append("hakurei"), true, t.NewPatchedSource( - "hakurei", hakureiVersion, hakureiSource, true, hakureiPatches..., + "hakurei", hakureiVersion, hakureiSource, false, hakureiPatches..., )), pkg.Path(AbsUsrSrc.Append("hostname", "main.go"), false, pkg.NewFile( "hostname.go", []byte(` @@ -69,10 +76,11 @@ go build -trimpath -v -o /work/system/libexec/hakurei -ldflags="-s -w -buildid= -linkmode external -extldflags=-static - -X hakurei.app/internal/info.buildVersion="$HAKUREI_VERSION" + -X hakurei.app/internal/info.buildVersion=${HAKUREI_VERSION} -X hakurei.app/internal/info.hakureiPath=/system/bin/hakurei -X hakurei.app/internal/info.hsuPath=/system/bin/hsu - -X main.hakureiPath=/system/bin/hakurei" ./... + -X main.hakureiPath=/system/bin/hakurei +" ./... echo echo '# Testing hakurei.' @@ -84,7 +92,7 @@ mkdir -p /work/system/bin/ hakurei \ sharefs \ ../../bin/) -`), hakureiVersion +`, true), hakureiVersion }, Name: "hakurei", @@ -98,7 +106,7 @@ mkdir -p /work/system/bin/ return t.newHakurei("-dist", ` export HAKUREI_VERSION DESTDIR=/work /usr/src/hakurei/dist/release.sh -`), hakureiVersion +`, true), hakureiVersion }, Name: "hakurei-dist",