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  }