| package cmd | 
 |  | 
 | import ( | 
 | 	"os" | 
 | 	"path" | 
 |  | 
 | 	"github.com/Masterminds/cookoo" | 
 | 	"github.com/Masterminds/glide/cfg" | 
 | ) | 
 |  | 
 | // If we are updating the vendored dependencies. That is those stored in the | 
 | // local project VCS. | 
 | var updatingVendored = false | 
 |  | 
 | // VendoredSetup is a command that does the setup for vendored directories. | 
 | // If enabled (via update) it marks vendored directories that are being updated | 
 | // and removed the old code. This should be a prefix to UpdateImports and | 
 | // VendoredCleanUp should be a suffix to UpdateImports. | 
 | func VendoredSetup(c cookoo.Context, p *cookoo.Params) (interface{}, cookoo.Interrupt) { | 
 | 	update := p.Get("update", false).(bool) | 
 | 	conf := p.Get("conf", nil).(*cfg.Config) | 
 |  | 
 | 	updatingVendored = update | 
 |  | 
 | 	return conf, nil | 
 | } | 
 |  | 
 | // VendoredCleanUp is a command that cleans up vendored codebases after an update. | 
 | // If enabled (via update) it removes the VCS info from updated vendored | 
 | // packages. This should be a suffix to UpdateImports and  VendoredSetup should | 
 | // be a prefix to UpdateImports. | 
 | func VendoredCleanUp(c cookoo.Context, p *cookoo.Params) (interface{}, cookoo.Interrupt) { | 
 | 	update := p.Get("update", true).(bool) | 
 | 	if update != true { | 
 | 		return false, nil | 
 | 	} | 
 | 	conf := p.Get("conf", nil).(*cfg.Config) | 
 |  | 
 | 	vend, err := VendorPath(c) | 
 | 	if err != nil { | 
 | 		return false, err | 
 | 	} | 
 |  | 
 | 	for _, dep := range conf.Imports { | 
 | 		if dep.UpdateAsVendored == true { | 
 | 			Info("Cleaning up vendored package %s\n", dep.Name) | 
 |  | 
 | 			// Remove the VCS directory | 
 | 			cwd := path.Join(vend, dep.Name) | 
 | 			repo, err := dep.GetRepo(cwd) | 
 | 			if err != nil { | 
 | 				Error("Error cleaning up %s:%s", dep.Name, err) | 
 | 				continue | 
 | 			} | 
 | 			t := repo.Vcs() | 
 | 			err = os.RemoveAll(cwd + string(os.PathSeparator) + "." + string(t)) | 
 | 			if err != nil { | 
 | 				Error("Error cleaning up VCS dir for %s:%s", dep.Name, err) | 
 | 			} | 
 | 		} | 
 |  | 
 | 	} | 
 |  | 
 | 	return true, nil | 
 | } |