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
}