env: get GOROOT from env variable or go env GOROOT
This commit is contained in:
17
compiler/internal/env/env.go
vendored
17
compiler/internal/env/env.go
vendored
@@ -1,7 +1,9 @@
|
||||
package env
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"os"
|
||||
"os/exec"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
)
|
||||
@@ -12,6 +14,21 @@ const (
|
||||
LLGoRuntimePkg = LLGoCompilerPkg + "/" + LLGoRuntimePkgName
|
||||
)
|
||||
|
||||
func GOROOT() string {
|
||||
root := os.Getenv("GOROOT")
|
||||
if root != "" {
|
||||
return root
|
||||
}
|
||||
cmd := exec.Command("go", "env", "GOROOT")
|
||||
var out bytes.Buffer
|
||||
cmd.Stdout = &out
|
||||
err := cmd.Run()
|
||||
if err == nil {
|
||||
return strings.TrimSpace(out.String())
|
||||
}
|
||||
panic("cannot get GOROOT: " + err.Error())
|
||||
}
|
||||
|
||||
func LLGoRuntimeDir() string {
|
||||
root := LLGoROOT()
|
||||
if root != "" {
|
||||
|
||||
Reference in New Issue
Block a user