Merge pull request #311 from thockin/dont-recurse-if-nothing-to-do
Don't process deps if 'get' was a no-op
diff --git a/action/get.go b/action/get.go
index 22e0652..b1c0a46 100644
--- a/action/get.go
+++ b/action/get.go
@@ -26,8 +26,11 @@
}
// Add the packages to the config.
- if err := addPkgsToConfig(conf, names, insecure); err != nil {
+ if count, err := addPkgsToConfig(conf, names, insecure); err != nil {
msg.Die("Failed to get new packages: %s", err)
+ } else if count == 0 {
+ msg.Warn("Nothing to do")
+ return
}
// Fetch the new packages. Can't resolve versions via installer.Update if
@@ -96,10 +99,11 @@
// - separates repo from packages
// - sets up insecure repo URLs where necessary
// - generates a list of subpackages
-func addPkgsToConfig(conf *cfg.Config, names []string, insecure bool) error {
+func addPkgsToConfig(conf *cfg.Config, names []string, insecure bool) (int, error) {
msg.Info("Preparing to install %d package.", len(names))
+ numAdded := 0
for _, name := range names {
var version string
parts := strings.Split(name, "#")
@@ -110,7 +114,7 @@
root, subpkg := util.NormalizeName(name)
if len(root) == 0 {
- return fmt.Errorf("Package name is required for %q.", name)
+ return 0, fmt.Errorf("Package name is required for %q.", name)
}
if conf.HasDependency(root) {
@@ -123,6 +127,7 @@
} else {
dep.Subpackages = append(dep.Subpackages, subpkg)
msg.Info("Adding sub-package %s to existing import %s", subpkg, root)
+ numAdded++
}
} else {
msg.Warn("Package %q is already in glide.yaml. Skipping", root)
@@ -160,6 +165,7 @@
}
conf.Imports = append(conf.Imports, dep)
+ numAdded++
}
- return nil
+ return numAdded, nil
}