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
+}