Fixing temp directory location creation problem on windows
diff --git a/repo/installer.go b/repo/installer.go index 112d7bb..becafab 100644 --- a/repo/installer.go +++ b/repo/installer.go
@@ -248,6 +248,16 @@ if err != nil { return err } + // defer func() { + // err = os.RemoveAll(tempDir) + // if err != nil { + // msg.Err(err.Error()) + // } + // }() + + vp := filepath.Join(tempDir, "vendor") + err = os.MkdirAll(vp, 0755) + msg.Info("Exporting resolved dependencies...") done := make(chan struct{}, concurrentWorkers) in := make(chan *cfg.Dependency, concurrentWorkers) @@ -270,14 +280,10 @@ cdir := filepath.Join(cache.Location(), "src", key) repo, err := dep.GetRepo(cdir) if err != nil { - err2 := os.RemoveAll(tempDir) - if err2 != nil { - msg.Debug("Unable to delete temp vendor directory: %s", err2) - } msg.Die(err.Error()) } msg.Info("--> Exporting %s", dep.Name) - if err := repo.ExportDir(filepath.Join(tempDir, filepath.ToSlash(dep.Name))); err != nil { + if err := repo.ExportDir(filepath.Join(vp, filepath.ToSlash(dep.Name))); err != nil { msg.Err("Export failed for %s: %s\n", dep.Name, err) // Capture the error while making sure the concurrent // operations don't step on each other. @@ -300,6 +306,16 @@ for _, dep := range conf.Imports { if !conf.HasIgnore(dep.Name) { + err = os.MkdirAll(filepath.Join(vp, filepath.ToSlash(dep.Name)), 0755) + if err != nil { + lock.Lock() + if returnErr == nil { + returnErr = err + } else { + returnErr = cli.NewMultiError(returnErr, err) + } + lock.Unlock() + } wg.Add(1) in <- dep } @@ -308,6 +324,16 @@ if i.ResolveTest { for _, dep := range conf.DevImports { if !conf.HasIgnore(dep.Name) { + err = os.MkdirAll(filepath.Join(vp, filepath.ToSlash(dep.Name)), 0755) + if err != nil { + lock.Lock() + if returnErr == nil { + returnErr = err + } else { + returnErr = cli.NewMultiError(returnErr, err) + } + lock.Unlock() + } wg.Add(1) in <- dep } @@ -322,11 +348,6 @@ } if returnErr != nil { - err2 := os.RemoveAll(tempDir) - if err2 != nil { - msg.Debug("Unable to delete temp vendor directory: %s", err2) - } - return returnErr } @@ -336,7 +357,7 @@ return err } - err = os.Rename(tempDir, i.VendorPath()) + err = os.Rename(vp, i.VendorPath()) return err }