40 lines
655 B
Go
40 lines
655 B
Go
|
package packr
|
||
|
|
||
|
import (
|
||
|
"os"
|
||
|
"os/exec"
|
||
|
"path/filepath"
|
||
|
"strings"
|
||
|
"sync"
|
||
|
)
|
||
|
|
||
|
var goPath = filepath.Join(os.Getenv("HOME"), "go")
|
||
|
|
||
|
func init() {
|
||
|
var once sync.Once
|
||
|
once.Do(func() {
|
||
|
cmd := exec.Command("go", "env", "GOPATH")
|
||
|
b, err := cmd.CombinedOutput()
|
||
|
if err != nil {
|
||
|
return
|
||
|
}
|
||
|
goPath = strings.TrimSpace(string(b))
|
||
|
})
|
||
|
}
|
||
|
|
||
|
// GoPath returns the current GOPATH env var
|
||
|
// or if it's missing, the default.
|
||
|
func GoPath() string {
|
||
|
return goPath
|
||
|
}
|
||
|
|
||
|
// GoBin returns the current GO_BIN env var
|
||
|
// or if it's missing, a default of "go"
|
||
|
func GoBin() string {
|
||
|
go_bin := os.Getenv("GO_BIN")
|
||
|
if go_bin == "" {
|
||
|
return "go"
|
||
|
}
|
||
|
return go_bin
|
||
|
}
|