...

Source file src/github.com/bazelbuild/rules_go/go/tools/go_bin_runner/main.go

Documentation: github.com/bazelbuild/rules_go/go/tools/go_bin_runner

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

View as plain text