github.com/lineaje-labs/syft@v0.98.1-0.20231227153149-9e393f60ff1b/syft/pkg/cataloger/haskell/package.go (about)

     1  package haskell
     2  
     3  import (
     4  	"github.com/anchore/packageurl-go"
     5  	"github.com/anchore/syft/syft/file"
     6  	"github.com/anchore/syft/syft/pkg"
     7  )
     8  
     9  func newPackage(name, version string, m any, location file.Location) pkg.Package {
    10  	p := pkg.Package{
    11  		Name:      name,
    12  		Version:   version,
    13  		Locations: file.NewLocationSet(location.WithAnnotation(pkg.EvidenceAnnotationKey, pkg.PrimaryEvidenceAnnotation)),
    14  		PURL:      packageURL(name, version),
    15  		Language:  pkg.Haskell,
    16  		Type:      pkg.HackagePkg,
    17  		Metadata:  m,
    18  	}
    19  
    20  	p.SetID()
    21  
    22  	return p
    23  }
    24  
    25  func packageURL(name, version string) string {
    26  	var qualifiers packageurl.Qualifiers
    27  
    28  	return packageurl.NewPackageURL(
    29  		packageurl.TypeHackage,
    30  		"",
    31  		name,
    32  		version,
    33  		qualifiers,
    34  		"",
    35  	).ToString()
    36  }