github.com/joey-fossa/fossa-cli@v0.7.34-0.20190708193710-569f1e8679f0/buildtools/gdm/gdm.go (about) 1 // Package gdm implements a Go package resolver for the gdm tool. 2 package gdm 3 4 import ( 5 "errors" 6 7 "github.com/fossas/fossa-cli/buildtools/gpm" 8 "github.com/fossas/fossa-cli/files" 9 ) 10 11 // New constructs a gdm lockfile from a project directory. 12 func New(dirname string) (gpm.Lockfile, error) { 13 ok, err := UsedIn(dirname) 14 if err != nil { 15 return nil, err 16 } 17 if !ok { 18 return nil, errors.New("directory does not use gdm") 19 } 20 21 lockfile, err := FromFile(dirname, "Godeps") 22 if err != nil { 23 return nil, err 24 } 25 26 return lockfile, nil 27 } 28 29 // UsedIn checks whether gdm is used correctly within a project directory. 30 func UsedIn(dirname string) (bool, error) { 31 return files.Exists(dirname, "Godeps") 32 } 33 34 // FromFile constructs a gdm lockfile from a specific file. 35 func FromFile(pathElems ...string) (gpm.Lockfile, error) { 36 return gpm.FromFile(pathElems...) 37 }