From c66ad90b854029a305b0e99f21d5ad9389fda9ce Mon Sep 17 00:00:00 2001 From: Paul Smith Date: Wed, 16 Oct 2024 12:35:42 -0500 Subject: [PATCH] build: Allow codegen-only to produce the templated main.go (#133) Fixes #131. --- main.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/main.go b/main.go index 418d4aa..de8a83b 100644 --- a/main.go +++ b/main.go @@ -349,7 +349,7 @@ func (b *buildCmd) do() error { } } - if b.parseOnly || b.codeGenOnly { + if b.parseOnly { return nil } @@ -360,6 +360,7 @@ func (b *buildCmd) do() error { buildDir: b.outDir, outFile: b.outFile, verbose: b.verbose, + codeGenOnly: b.codeGenOnly, } if err := buildProject(context.Background(), params); err != nil { return fmt.Errorf("building project: %w", err) @@ -760,6 +761,7 @@ type buildParams struct { buildDir string outFile string verbose bool + codeGenOnly bool } // buildProject builds the Go program made up of the user's compiled .up @@ -798,6 +800,13 @@ func buildProject(_ context.Context, b buildParams) error { b.outFile = filepath.Join(b.buildDir, "bin", b.projectName) } + if b.codeGenOnly { + if b.verbose { + fmt.Printf("codegen only, not building executable\n") + } + return nil + } + args := []string{"build", "-o", b.outFile, filepath.Join(pkgName, "cmd", b.projectName)} if b.verbose { fmt.Printf("build command: go %s\n", strings.Join(args, " "))