interp: clarify error about GOPATH probably not set
This commit is contained in:
@@ -33,12 +33,12 @@ func (interp *Interpreter) importSrc(rPath, importPath string, skipTest bool) (s
|
|||||||
rPath = "."
|
rPath = "."
|
||||||
}
|
}
|
||||||
dir = filepath.Join(filepath.Dir(interp.name), rPath, importPath)
|
dir = filepath.Join(filepath.Dir(interp.name), rPath, importPath)
|
||||||
} else if dir, rPath, err = pkgDir(interp.context.GOPATH, rPath, importPath); err != nil {
|
} else if dir, rPath, err = interp.pkgDir(interp.context.GOPATH, rPath, importPath); err != nil {
|
||||||
// Try again, assuming a root dir at the source location.
|
// Try again, assuming a root dir at the source location.
|
||||||
if rPath, err = interp.rootFromSourceLocation(); err != nil {
|
if rPath, err = interp.rootFromSourceLocation(); err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
if dir, rPath, err = pkgDir(interp.context.GOPATH, rPath, importPath); err != nil {
|
if dir, rPath, err = interp.pkgDir(interp.context.GOPATH, rPath, importPath); err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -181,7 +181,7 @@ func (interp *Interpreter) rootFromSourceLocation() (string, error) {
|
|||||||
|
|
||||||
// pkgDir returns the absolute path in filesystem for a package given its import path
|
// pkgDir returns the absolute path in filesystem for a package given its import path
|
||||||
// and the root of the subtree dependencies.
|
// and the root of the subtree dependencies.
|
||||||
func pkgDir(goPath string, root, importPath string) (string, string, error) {
|
func (interp *Interpreter) pkgDir(goPath string, root, importPath string) (string, string, error) {
|
||||||
rPath := filepath.Join(root, "vendor")
|
rPath := filepath.Join(root, "vendor")
|
||||||
dir := filepath.Join(goPath, "src", rPath, importPath)
|
dir := filepath.Join(goPath, "src", rPath, importPath)
|
||||||
|
|
||||||
@@ -196,6 +196,9 @@ func pkgDir(goPath string, root, importPath string) (string, string, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if len(root) == 0 {
|
if len(root) == 0 {
|
||||||
|
if interp.context.GOPATH == "" {
|
||||||
|
return "", "", fmt.Errorf("unable to find source related to: %q. Either the GOPATH environment variable, or the Interpreter.Options.GoPath needs to be set", importPath)
|
||||||
|
}
|
||||||
return "", "", fmt.Errorf("unable to find source related to: %q", importPath)
|
return "", "", fmt.Errorf("unable to find source related to: %q", importPath)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -205,7 +208,7 @@ func pkgDir(goPath string, root, importPath string) (string, string, error) {
|
|||||||
return "", "", err
|
return "", "", err
|
||||||
}
|
}
|
||||||
|
|
||||||
return pkgDir(goPath, prevRoot, importPath)
|
return interp.pkgDir(goPath, prevRoot, importPath)
|
||||||
}
|
}
|
||||||
|
|
||||||
const vendor = "vendor"
|
const vendor = "vendor"
|
||||||
|
|||||||
@@ -161,6 +161,8 @@ func Test_pkgDir(t *testing.T) {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
interp := &Interpreter{}
|
||||||
|
|
||||||
for _, test := range testCases {
|
for _, test := range testCases {
|
||||||
test := test
|
test := test
|
||||||
t.Run(test.desc, func(t *testing.T) {
|
t.Run(test.desc, func(t *testing.T) {
|
||||||
@@ -178,7 +180,7 @@ func Test_pkgDir(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dir, rPath, err := pkgDir(goPath, test.root, test.path)
|
dir, rPath, err := interp.pkgDir(goPath, test.root, test.path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user