| package action | 
 |  | 
 | import ( | 
 | 	"github.com/Masterminds/glide/cache" | 
 | 	"github.com/Masterminds/glide/cfg" | 
 | 	"github.com/Masterminds/glide/msg" | 
 | 	gpath "github.com/Masterminds/glide/path" | 
 | 	"github.com/Masterminds/glide/repo" | 
 | ) | 
 |  | 
 | // Remove removes a dependncy from the configuration. | 
 | func Remove(packages []string, inst *repo.Installer) { | 
 | 	cache.SystemLock() | 
 | 	base := gpath.Basepath() | 
 | 	EnsureGopath() | 
 | 	EnsureVendorDir() | 
 | 	conf := EnsureConfig() | 
 | 	glidefile, err := gpath.Glide() | 
 | 	if err != nil { | 
 | 		msg.Die("Could not find Glide file: %s", err) | 
 | 	} | 
 |  | 
 | 	msg.Info("Preparing to remove %d packages.", len(packages)) | 
 | 	conf.Imports = rmDeps(packages, conf.Imports) | 
 | 	conf.DevImports = rmDeps(packages, conf.DevImports) | 
 |  | 
 | 	// Copy used to generate locks. | 
 | 	confcopy := conf.Clone() | 
 |  | 
 | 	//confcopy.Imports = inst.List(confcopy) | 
 |  | 
 | 	if err := repo.SetReference(confcopy, inst.ResolveTest); err != nil { | 
 | 		msg.Err("Failed to set references: %s", err) | 
 | 	} | 
 |  | 
 | 	err = inst.Export(confcopy) | 
 | 	if err != nil { | 
 | 		msg.Die("Unable to export dependencies to vendor directory: %s", err) | 
 | 	} | 
 |  | 
 | 	// Write glide.yaml | 
 | 	if err := conf.WriteFile(glidefile); err != nil { | 
 | 		msg.Die("Failed to write glide YAML file: %s", err) | 
 | 	} | 
 |  | 
 | 	// Write glide lock | 
 | 	writeLock(conf, confcopy, base) | 
 | } | 
 |  | 
 | // rmDeps returns a list of dependencies that do not contain the given pkgs. | 
 | // | 
 | // It generates neither an error nor a warning for a pkg that does not exist | 
 | // in the list of deps. | 
 | func rmDeps(pkgs []string, deps []*cfg.Dependency) []*cfg.Dependency { | 
 | 	res := []*cfg.Dependency{} | 
 | 	for _, d := range deps { | 
 | 		rem := false | 
 | 		for _, p := range pkgs { | 
 | 			if p == d.Name { | 
 | 				rem = true | 
 | 			} | 
 | 		} | 
 | 		if !rem { | 
 | 			res = append(res, d) | 
 | 		} | 
 | 	} | 
 | 	return res | 
 | } |