blob: 4923e677c531a78aa77d29a9d95d7bd275aa8d4d [file] [log] [blame]
// gotoolchain provides information about the Go toolchain used on the host by
// rules_go.
package gotoolchain
import (
"fmt"
"path/filepath"
"strings"
"github.com/bazelbuild/rules_go/go/runfiles"
)
func mustRunfile(s string) string {
// TODO(tim): I couldn't find out why there is a prefix.
s = strings.TrimPrefix(s, "external/")
res, err := runfiles.Rlocation(s)
if err != nil {
panic(fmt.Sprintf("runfile %q not found: %v", s, err))
}
abs, err := filepath.Abs(res)
if err != nil {
panic(fmt.Sprintf("cant make runfile %q absolute: %v", s, err))
}
return abs
}
var (
// Go is a path to the `go` executable.
Go = mustRunfile(`GOTOOL`)
// Root is the GOROOT path.
Root = mustRunfile(`GOROOT`)
)