blob: 0836266b6567bbc3b43a8bb37d9a542410226f2b [file] [log] [blame]
package cmd
import (
"fmt"
"os"
"path/filepath"
"github.com/Masterminds/cookoo"
)
// InGopath validates that the current directory is the root of the project
// and the GOPATH is set for the _vendor folder.
func InGopath(c cookoo.Context, p *cookoo.Params) (interface{}, cookoo.Interrupt) {
vendor := c.Get("VendorDir", "vendor").(string)
// Get current dir
cwd, err := os.Getwd()
if err != nil {
return false, err
}
cwd = filepath.Join(cwd, vendor)
// Get GOPATH
gopath, err := filepath.Abs(os.Getenv("GOPATH"))
if err != nil {
return false, err
}
// Check that they are equal.
if cwd != gopath {
Error("For Glide to create a managed vendor directory, you must set your GOPATH to %s.\n", cwd)
Info("You can use `glide in` to set GOPATH for you.\n")
Info("If you are using an external GOPATH, skip to `glide update`.\n")
return false, fmt.Errorf("GOPATH is %s, but current directory is %s", gopath, cwd)
}
return true, nil
}