From e1438e2a4ef8ede9d94e026390391d8a95aa2524 Mon Sep 17 00:00:00 2001 From: Dan Luhring Date: Wed, 22 May 2024 18:27:06 -0400 Subject: [PATCH] predict dlv install path using os + arch Signed-off-by: Dan Luhring --- pkg/build/gobuild.go | 23 ++++++----------------- 1 file changed, 6 insertions(+), 17 deletions(-) diff --git a/pkg/build/gobuild.go b/pkg/build/gobuild.go index dff7a6955..8c8473cb9 100644 --- a/pkg/build/gobuild.go +++ b/pkg/build/gobuild.go @@ -23,7 +23,6 @@ import ( "fmt" gb "go/build" "io" - "io/fs" "log" "os" "os/exec" @@ -312,23 +311,13 @@ func getDelve(ctx context.Context, platform v1.Platform) (string, error) { } // find the delve binary in tmpInstallDir/bin/ - delveBinary := "" - if err := filepath.WalkDir(filepath.Join(tmpInstallDir, "bin"), func(path string, d fs.DirEntry, err error) error { - if err != nil { - return err - } - - if !d.IsDir() && strings.Contains(d.Name(), "dlv") { - delveBinary = path - } - - return nil - }); err != nil { - return "", fmt.Errorf("could not search for Delve binary: %w", err) + osArchDir := "" + if platform.OS != "" && platform.Architecture != "" { + osArchDir = fmt.Sprintf("%s_%s", platform.OS, platform.Architecture) } - - if delveBinary == "" { - return "", fmt.Errorf("could not find Delve binary in %q", tmpInstallDir) + delveBinary := filepath.Join(tmpInstallDir, "bin", osArchDir, "dlv") + if _, err := os.Stat(delveBinary); err != nil { + return "", fmt.Errorf("could not find Delve binary at %q: %w", delveBinary, err) } return delveBinary, nil