restore: fix recursive error handling
diff --git a/restore.go b/restore.go index fbf443e..5cfca48 100644 --- a/restore.go +++ b/restore.go
@@ -69,7 +69,7 @@ go func() { defer wg.Done() for d := range depC { - if err := downloadDependency(d, vendorDir(), false); err != nil { + if err := downloadDependency(d, &errors, vendorDir(), false); err != nil { log.Printf("%s: %v", d.Importpath, err) atomic.AddUint32(&errors, 1) } @@ -90,7 +90,7 @@ return nil } -func downloadDependency(dep vendor.Dependency, vendorDir string, recursive bool) error { +func downloadDependency(dep vendor.Dependency, errors *uint32, vendorDir string, recursive bool) error { if recursive { log.Printf("fetching recursive %s", dep.Importpath) } else { @@ -132,11 +132,10 @@ if err != nil { return fmt.Errorf("could not load manifest: %v", err) } - var errors uint32 for _, d := range m.Dependencies { - if err := downloadDependency(d, venDir, true); err != nil { + if err := downloadDependency(d, errors, venDir, true); err != nil { log.Printf("%s: %v", d.Importpath, err) - atomic.AddUint32(&errors, 1) + atomic.AddUint32(errors, 1) } } }