| package action | 
 |  | 
 | import ( | 
 | 	"github.com/Masterminds/glide/cfg" | 
 | 	"github.com/Masterminds/glide/gb" | 
 | 	"github.com/Masterminds/glide/msg" | 
 | 	gpath "github.com/Masterminds/glide/path" | 
 | ) | 
 |  | 
 | // ImportGB imports GB dependencies into the present glide config. | 
 | func ImportGB(dest string) { | 
 | 	base := "." | 
 | 	config := EnsureConfig() | 
 | 	if !gb.Has(base) { | 
 | 		msg.Die("There is no GB manifest to import.") | 
 | 	} | 
 | 	deps, err := gb.Parse(base) | 
 | 	if err != nil { | 
 | 		msg.Die("Failed to extract GB manifest: %s", err) | 
 | 	} | 
 | 	appendImports(deps, config) | 
 | 	writeConfigToFileOrStdout(config, dest) | 
 | } | 
 |  | 
 | func appendImports(deps []*cfg.Dependency, config *cfg.Config) { | 
 | 	if len(deps) == 0 { | 
 | 		msg.Info("No dependencies added.") | 
 | 		return | 
 | 	} | 
 |  | 
 | 	//Append deps to existing dependencies. | 
 | 	if err := config.AddImport(deps...); err != nil { | 
 | 		msg.Die("Failed to add imports: %s", err) | 
 | 	} | 
 | } | 
 |  | 
 | // writeConfigToFileOrStdout is a convenience function for import utils. | 
 | func writeConfigToFileOrStdout(config *cfg.Config, dest string) { | 
 | 	if dest != "" { | 
 | 		if err := config.WriteFile(dest); err != nil { | 
 | 			msg.Die("Failed to write %s: %s", gpath.GlideFile, err) | 
 | 		} | 
 | 	} else { | 
 | 		o, err := config.Marshal() | 
 | 		if err != nil { | 
 | 			msg.Die("Error encoding config: %s", err) | 
 | 		} | 
 | 		msg.Default.Stdout.Write(o) | 
 | 	} | 
 | } |