loader: respect $GOROOT when running go list

This makes it possible to select the Go version using GOROOT, and works
even if the `go` binary is not in $PATH.
Этот коммит содержится в:
Ayke van Laethem 2022-01-19 13:11:38 +01:00 коммит произвёл Nia
родитель e7e1b755c9
коммит d054d4d512

Просмотреть файл

@ -3,9 +3,11 @@ package loader
import (
"os"
"os/exec"
"path/filepath"
"strings"
"github.com/tinygo-org/tinygo/compileopts"
"github.com/tinygo-org/tinygo/goenv"
)
// List returns a ready-to-run *exec.Cmd for running the `go list` command with
@ -24,7 +26,7 @@ func List(config *compileopts.Config, extraArgs, pkgs []string) (*exec.Cmd, erro
if config.CgoEnabled() {
cgoEnabled = "1"
}
cmd := exec.Command("go", args...)
cmd := exec.Command(filepath.Join(goenv.Get("GOROOT"), "bin", "go"), args...)
cmd.Env = append(os.Environ(), "GOROOT="+goroot, "GOOS="+config.GOOS(), "GOARCH="+config.GOARCH(), "CGO_ENABLED="+cgoEnabled)
return cmd, nil
}