Issue #146: re-enabling old (and now fixed) unmanaged import scanning
diff --git a/cmd/flatten.go b/cmd/flatten.go index e3de2a4..eac3773 100644 --- a/cmd/flatten.go +++ b/cmd/flatten.go
@@ -8,6 +8,7 @@ "github.com/Masterminds/cookoo" "github.com/Masterminds/glide/cfg" + "github.com/Masterminds/glide/util" "github.com/Masterminds/semver" ) @@ -261,58 +262,52 @@ // for dependencies. So generally it should be the last merge strategy // that you try. func mergeGuess(dir, pkg string, deps map[string]*cfg.Dependency, vend string) ([]string, bool) { - /* - Info("Scanning %s for dependencies.", pkg) - buildContext, err := GetBuildContext() - if err != nil { - Warn("Could not scan package %q: %s", pkg, err) - return []string{}, false - } + Info("Scanning %s for dependencies.", pkg) + buildContext, err := GetBuildContext() + if err != nil { + Warn("Could not scan package %q: %s", pkg, err) + return []string{}, false + } - res := []string{} + res := []string{} - if _, err := os.Stat(dir); err != nil { - Warn("Directory is missing: %s", dir) - return res, true - } - - d := walkDeps(buildContext, dir, pkg) - for _, name := range d { - name, _ := NormalizeName(name) - repo := getRepoRootFromPackage(name) - if _, ok := deps[name]; ok { - Debug("====> Seen %s already. Skipping", name) - continue - } - - found := findPkg(buildContext, name, dir) - switch found.PType { - case ptypeUnknown: - Debug("✨☆ Undownloaded dependency: %s", name) - nd := &Dependency{ - Name: name, - Repository: "https://" + repo, - } - deps[name] = nd - res = append(res, name) - case ptypeGoroot, ptypeCgo: - break - default: - // We're looking for dependencies that might exist in $GOPATH - // but not be on vendor. We add any that are on $GOPATH. - if _, ok := deps[name]; !ok { - Debug("✨☆ GOPATH dependency: %s", name) - nd := &Dependency{Name: name} - deps[name] = nd - res = append(res, name) - } - } - } - + if _, err := os.Stat(dir); err != nil { + Warn("Directory is missing: %s", dir) return res, true - */ - Info("Package %s manages its own dependencies", pkg) - return []string{}, true + } + d := walkDeps(buildContext, dir, pkg) + for _, name := range d { + name, _ := NormalizeName(name) + if _, ok := deps[name]; ok { + Debug("====> Seen %s already. Skipping", name) + continue + } + found := findPkg(buildContext, name, dir) + switch found.PType { + case ptypeUnknown: + Debug("✨☆ Undownloaded dependency: %s", name) + repo := util.GetRootFromPackage(name) + nd := &cfg.Dependency{ + Name: name, + Repository: "https://" + repo, + } + deps[name] = nd + res = append(res, name) + case ptypeGoroot, ptypeCgo: + break + default: + // We're looking for dependencies that might exist in $GOPATH + // but not be on vendor. We add any that are on $GOPATH. + if _, ok := deps[name]; !ok { + Debug("✨☆ GOPATH dependency: %s", name) + nd := &cfg.Dependency{Name: name} + deps[name] = nd + res = append(res, name) + } + } + } + + return res, true } // mergeDeps merges any dependency array into deps.
diff --git a/cmd/get_imports.go b/cmd/get_imports.go index 8782f8e..feae223 100644 --- a/cmd/get_imports.go +++ b/cmd/get_imports.go
@@ -520,6 +520,9 @@ if dep.Reference == "" { // Before exiting update the pinned version repo, err := dep.GetRepo(cwd) + if err != nil { + return err + } dep.Pin, err = repo.Version() if err != nil { return err
diff --git a/cmd/tree.go b/cmd/tree.go index a3bbcdd..61ba869 100644 --- a/cmd/tree.go +++ b/cmd/tree.go
@@ -176,13 +176,15 @@ if err != nil { abs = cwd } - for wd := abs; wd != "/"; wd = filepath.Dir(wd) { - p = filepath.Join(wd, "vendor", name) - if fi, err = os.Stat(p); err == nil && (fi.IsDir() || isLink(fi)) { - info.Path = p - info.PType = ptypeVendor - info.Vendored = true - return info + if abs != "." { + for wd := abs; wd != "/"; wd = filepath.Dir(wd) { + p = filepath.Join(wd, "vendor", name) + if fi, err = os.Stat(p); err == nil && (fi.IsDir() || isLink(fi)) { + info.Path = p + info.PType = ptypeVendor + info.Vendored = true + return info + } } } // Check $GOPATH