Stopped glide source code scanning to test #113. If this version is significantly faster, I'll hide the scanning operation behind a command line flag so that it's off by default.
diff --git a/cmd/flatten.go b/cmd/flatten.go index 74aff62..746c083 100644 --- a/cmd/flatten.go +++ b/cmd/flatten.go
@@ -231,54 +231,58 @@ // for dependencies. So generally it should be the last merge strategy // that you try. func mergeGuess(dir, pkg string, deps map[string]*Dependency) ([]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) + 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) + } + } + } + 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) - } - } - } - - return res, true + */ + Info("Package %s manages its own dependencies", pkg) + return []string{}, true } // mergeDeps merges any dependency array into deps.