diff --git a/cmd/dist/main.go b/cmd/dist/main.go index d876cf83..82247dd9 100644 --- a/cmd/dist/main.go +++ b/cmd/dist/main.go @@ -35,8 +35,11 @@ func getenv(key, fallback string) string { // mustRun runs a command with the current process's environment and panics // on error or non-zero exit code. -func mustRun(ctx context.Context, name string, arg ...string) { +func mustRun(ctx context.Context, env []string, name string, arg ...string) { cmd := exec.CommandContext(ctx, name, arg...) + if env != nil { + cmd.Env = append(cmd.Environ(), env...) + } cmd.Stdin, cmd.Stdout, cmd.Stderr = os.Stdin, os.Stdout, os.Stderr if err := cmd.Run(); err != nil { panic(err) @@ -49,6 +52,7 @@ var comp []byte func main() { log.SetFlags(0) log.SetPrefix("") + log.SetOutput(os.Stdout) verbose := os.Getenv("VERBOSE") != "" runTests := os.Getenv("HAKUREI_DIST_MAKE") == "" @@ -91,26 +95,37 @@ func main() { verboseFlag = "-buildvcs=false" } - log.Printf("Building hakurei for %s/%s.", runtime.GOOS, runtime.GOARCH) - mustRun(ctx, "go", "generate", "./...") + log.Printf("Building hakurei %s for %s/%s.", version, runtime.GOOS, runtime.GOARCH) + mustRun(ctx, nil, "go", "generate", "./...") mustRun( - ctx, "go", "build", + ctx, nil, "go", "build", "-trimpath", verboseFlag, "-o", s, "-ldflags=-s -w "+ "-buildid= -linkmode external -extldflags=-static "+ "-X hakurei.app/internal/info.buildVersion="+version+" "+ "-X hakurei.app/internal/info.hakureiPath="+prefix+"/bin/hakurei "+ - "-X hakurei.app/internal/info.hsuPath="+prefix+"/bin/hsu "+ - "-X main.hakureiPath="+prefix+"/bin/hakurei", - "./...", + "-X hakurei.app/internal/info.hsuPath="+prefix+"/bin/hsu", + "./cmd/hakurei", + "./cmd/sharefs", ) - log.Println() + log.Printf("Building cmd/hsu for %s/%s.", runtime.GOOS, runtime.GOARCH) + mustRun( + ctx, []string{"CGO_ENABLED=0"}, "go", "build", + "-trimpath", + verboseFlag, "-o", s, + "-ldflags=-s -w "+ + "-buildid= "+ + "-X main.hakureiPath="+prefix+"/bin/hakurei", + "./cmd/hsu", + ) + + log.Println() if runTests { log.Println("##### Testing Hakurei.") mustRun( - ctx, "go", "test", + ctx, nil, "go", "test", "-ldflags=-buildid= -linkmode external -extldflags=-static", "./...", ) diff --git a/internal/rosa/package/hakurei/package.az b/internal/rosa/package/hakurei/package.az index 2f33d200..b31ea6c4 100644 --- a/internal/rosa/package/hakurei/package.az +++ b/internal/rosa/package/hakurei/package.az @@ -48,8 +48,13 @@ go build -trimpath -tags=rosa -o /work/system/libexec/hakurei -ldflags="-s -w -X hakurei.app/internal/info.buildVersion=$(cat cmd/dist/VERSION) -X hakurei.app/internal/info.hakureiPath=/system/bin/hakurei -X hakurei.app/internal/info.hsuPath=/system/bin/hsu +" ./cmd/hakurei ./cmd/sharefs + +echo "Building hsu for $(go env GOOS)/$(go env GOARCH)." +CGO_ENABLED=0 go build -trimpath -tags=rosa -o /work/system/libexec/hakurei -ldflags="-s -w + -buildid= -X main.hakureiPath=/system/bin/hakurei -" ./... +" ./cmd/hsu echo`; check = ` echo '##### Testing hakurei.'