blob: bca4f7fca5b79e04018d71b9d14e19a4e62b4af1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
package main
import (
"log"
"os"
"path/filepath"
"strings"
"github.com/bazelbuild/rules_go/go/runfiles"
)
var GoBinRlocationPath = "not set"
func main() {
goBin, err := runfiles.Rlocation(GoBinRlocationPath)
if err != nil {
log.Fatal(err)
}
// The go binary lies at $GOROOT/bin/go.
goRoot, err := filepath.Abs(filepath.Dir(filepath.Dir(goBin)))
if err != nil {
log.Fatal(err)
}
env := os.Environ()
var filteredEnv []string
for i := 0; i < len(env); i++ {
if !strings.HasPrefix(env[i], "GOROOT=") {
filteredEnv = append(filteredEnv, env[i])
}
}
filteredEnv = append(filteredEnv, "GOROOT="+goRoot)
err = os.Chdir(os.Getenv("BUILD_WORKING_DIRECTORY"))
if err != nil {
log.Fatal(err)
}
args := append([]string{goBin}, os.Args[1:]...)
log.Fatal(ReplaceWithProcess(args, filteredEnv))
}
|