From 38824a64ef0c7585a496b5023444e77c1d1823bc Mon Sep 17 00:00:00 2001 From: Tyler Rockwood Date: Mon, 26 Jun 2023 12:10:02 -0500 Subject: [PATCH] Install buildpack at init time Signed-off-by: Tyler Rockwood --- src/go/rpk/pkg/cli/transform/build.go | 4 ++-- src/go/rpk/pkg/cli/transform/initialize.go | 8 ++++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/go/rpk/pkg/cli/transform/build.go b/src/go/rpk/pkg/cli/transform/build.go index 11d41954e2939..353a1f4cd7131 100644 --- a/src/go/rpk/pkg/cli/transform/build.go +++ b/src/go/rpk/pkg/cli/transform/build.go @@ -56,11 +56,11 @@ func installBuildpack(ctx context.Context, p buildpack.Buildpack, fs afero.Fs) ( if ok { return p.BinPath() } - fmt.Printf("latest %s build plugin not found, downloading now...\n", p.Name) + fmt.Printf("latest %s buildpack not found, downloading now...\n", p.Name) err = p.Download(ctx, fs) if err != nil { return "", err } - fmt.Printf("latest %s build plugin download complete\n", p.Name) + fmt.Printf("latest %s buildpack download complete\n", p.Name) return p.BinPath() } diff --git a/src/go/rpk/pkg/cli/transform/initialize.go b/src/go/rpk/pkg/cli/transform/initialize.go index 62b2832753ab2..8c816f66bb9f2 100644 --- a/src/go/rpk/pkg/cli/transform/initialize.go +++ b/src/go/rpk/pkg/cli/transform/initialize.go @@ -17,6 +17,7 @@ import ( "path/filepath" "strings" + "github.com/redpanda-data/redpanda/src/go/rpk/pkg/cli/transform/buildpack" "github.com/redpanda-data/redpanda/src/go/rpk/pkg/cli/transform/project" "github.com/redpanda-data/redpanda/src/go/rpk/pkg/cli/transform/template" "github.com/redpanda-data/redpanda/src/go/rpk/pkg/config" @@ -111,7 +112,7 @@ Will initialize a transform project in the foobar directory. out.MaybeDie(err, "unable to generate all manifest files: %v", err) ok, err = out.Confirm("install dependencies?") if ok && err == nil { - installDeps(cmd.Context(), p) + installDeps(cmd.Context(), fs, p) } fmt.Println("deploy your transform using:") if cwd != path { @@ -183,10 +184,12 @@ func executeGenerate(fs afero.Fs, p transformProject) error { return nil } -func installDeps(ctx context.Context, p transformProject) error { +func installDeps(ctx context.Context, fs afero.Fs, p transformProject) error { switch p.Lang { case project.WasmLangTinygo: { + _, err := installBuildpack(ctx, buildpack.Tinygo, fs) + out.MaybeDie(err, "unable to install tinygo buildpack: %v", err) g, err := exec.LookPath("go") out.MaybeDie(err, "go is not available on $PATH, please download and install it: https://go.dev/doc/install") c := exec.CommandContext(ctx, g, "mod", "tidy") @@ -196,6 +199,7 @@ func installDeps(ctx context.Context, p transformProject) error { c.Dir = p.Path out.MaybeDieErr(c.Run()) fmt.Println("go modules are tidy 🧹") + } } return fmt.Errorf("Unknown language %q", p.Lang)