add ability to read symlink basedirs
diff --git a/dependency/resolver.go b/dependency/resolver.go index e97ddd6..a9fa5ae 100644 --- a/dependency/resolver.go +++ b/dependency/resolver.go
@@ -166,6 +166,13 @@ if err != nil { return nil, err } + + basedir, err = checkForBasedirSymlink(basedir) + + if err != nil { + return nil, err + } + vdir := filepath.Join(basedir, "vendor") buildContext, err := util.GetBuildContext() @@ -940,3 +947,20 @@ return true } + +// checkForBasedirSymlink checks to see if the given basedir is actually a +// symlink. In the case that it is a symlink, the symlink is read and returned. +// If the basedir is not a symlink, the provided basedir argument is simply +// returned back to the caller. +func checkForBasedirSymlink(basedir string) (string, error) { + fi, err := os.Lstat(basedir) + if err != nil { + return "", err + } + + if fi.Mode()&os.ModeSymlink != 0 { + return os.Readlink(basedir) + } + + return basedir, nil +}