diff --git a/parser/parser.go b/parser/parser.go index 3639ed0..1c0b94c 100644 --- a/parser/parser.go +++ b/parser/parser.go @@ -1,11 +1,9 @@ package parser import ( - "bytes" "go/ast" "go/parser" "go/token" - "os/exec" "strings" ) @@ -91,8 +89,3 @@ func (p *Parser) Parse(fname string, isDir bool) error { } return nil } - -func getDefaultGoPath() (string, error) { - output, err := exec.Command("go", "env", "GOPATH").Output() - return string(bytes.TrimSpace(output)), err -} diff --git a/parser/pkgpath.go b/parser/pkgpath.go index 489b392..6442fd6 100644 --- a/parser/pkgpath.go +++ b/parser/pkgpath.go @@ -10,6 +10,7 @@ import ( "path/filepath" "strconv" "strings" + "go/build" ) func getPkgPath(fname string, isDir bool) (string, error) { @@ -137,11 +138,7 @@ func getModulePath(goModPath string) string { func getPkgPathFromGOPATH(fname string, isDir bool) (string, error) { gopath := os.Getenv("GOPATH") if gopath == "" { - var err error - gopath, err = getDefaultGoPath() - if err != nil { - return "", fmt.Errorf("cannot determine GOPATH: %s", err) - } + gopath = build.Default.GOPATH } for _, p := range strings.Split(gopath, string(filepath.ListSeparator)) {