diff --git a/parser/parser.go b/parser/parser.go index 1aa42d7..13875cc 100644 --- a/parser/parser.go +++ b/parser/parser.go @@ -1,12 +1,10 @@ package parser import ( - "bytes" "go/ast" "go/parser" "go/token" "os" - "os/exec" "strings" ) @@ -105,11 +103,6 @@ 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 -} - func excludeTestFiles(fi os.FileInfo) bool { return !strings.HasSuffix(fi.Name(), "_test.go") } diff --git a/parser/pkgpath.go b/parser/pkgpath.go index f5c28a1..c045c33 100644 --- a/parser/pkgpath.go +++ b/parser/pkgpath.go @@ -3,6 +3,7 @@ package parser import ( "bytes" "fmt" + "go/build" "io/ioutil" "os" "os/exec" @@ -121,11 +122,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)) {