// Honor the env var unless the project already has an old school godep workspace
funcdetermineVendor(vstring)bool{
go15ve:=os.Getenv("GO15VENDOREXPERIMENT")
varevbool
switchv{
case"go1","go1.1","go1.2","go1.3","go1.4":
ev=false
case"go1.5":
ev=go15ve=="1"
case"go1.6":
ev=go15ve!="0"
default://go1.7+, devel*
ev=true
}
ws:=filepath.Join("Godeps","_workspace")
s,err:=os.Stat(ws)
iferr==nil&&s.IsDir(){
log.Printf("WARNING: Godep workspaces (./Godeps/_workspace) are deprecated and support for them will be removed when go1.8 is released.")
ifev{
log.Printf("WARNING: Go version (%s) & $GO15VENDOREXPERIMENT=%s wants to enable the vendor experiment, but disabling because a Godep workspace (%s) exists\n",v,go15ve,ws)
}
returnfalse
}
returnev
}
funcmain(){
log.SetFlags(0)
log.SetPrefix("godep: ")
log.SetOutput(os.Stderr)
flag.Usage=usageExit
flag.Parse()
args:=flag.Args()
iflen(args)<1{
usageExit()
}
ifargs[0]=="help"{
help(args[1:])
return
}
varerrerror
majorGoVersion,err=goVersion()
iferr!=nil{
log.Fatal(err)
}
for_,cmd:=rangecommands{
ifcmd.Name==args[0]{
ifcmd.OnlyInGOPATH{
checkInGOPATH()
}
VendorExperiment=determineVendor(majorGoVersion)
// sep is the signature set of path elements that
// precede the original path of an imported package.