internal/version: prefix PATH with $GOROOT/bin
Adding $GOROOT/bin to $PATH ensures that the appropriate version of the
go/gofmt commands are run when using a go command wrapper generated by
x/build/version.
Fixes golang/go#28103
Change-Id: Ia72fb936631a3720cb15fcf8988dcec5f57a202a
Reviewed-on: https://go-review.googlesource.com/c/143545
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
diff --git a/internal/version/version.go b/internal/version/version.go
index 4d0bf3f..efcc257 100644
--- a/internal/version/version.go
+++ b/internal/version/version.go
@@ -57,7 +57,12 @@
cmd.Stdin = os.Stdin
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
- cmd.Env = envutil.Dedup(caseInsensitiveEnv, append(os.Environ(), "GOROOT="+root))
+
+ newPath := filepath.Join(root, "bin")
+ if p := os.Getenv("PATH"); p != "" {
+ newPath += string(filepath.ListSeparator) + p
+ }
+ cmd.Env = envutil.Dedup(caseInsensitiveEnv, append(os.Environ(), "GOROOT="+root, "PATH="+newPath))
if err := cmd.Run(); err != nil {
// TODO: return the same exit status maybe.
os.Exit(1)