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 }