| package repo |
| |
| import ( |
| "os" |
| "path/filepath" |
| |
| "github.com/Masterminds/glide/cfg" |
| "github.com/Masterminds/glide/msg" |
| gpath "github.com/Masterminds/glide/path" |
| ) |
| |
| // VendoredCleanup cleans up vendored codebases after an update. |
| // |
| // This should _only_ be run for installations that do not want VCS repos inside |
| // of the vendor/ directory. |
| func VendoredCleanup(conf *cfg.Config) error { |
| vend, err := gpath.Vendor() |
| if err != nil { |
| return err |
| } |
| |
| for _, dep := range conf.Imports { |
| if dep.UpdateAsVendored == true { |
| msg.Info("Cleaning up vendored package %s\n", dep.Name) |
| |
| // Remove the VCS directory |
| cwd := filepath.Join(vend, dep.Name) |
| repo, err := dep.GetRepo(cwd) |
| if err != nil { |
| msg.Err("Error cleaning up %s:%s", dep.Name, err) |
| continue |
| } |
| t := repo.Vcs() |
| err = os.RemoveAll(cwd + string(os.PathSeparator) + "." + string(t)) |
| if err != nil { |
| msg.Err("Error cleaning up VCS dir for %s:%s", dep.Name, err) |
| } |
| } |
| |
| } |
| |
| return nil |
| } |