github.com/noqcks/syft@v0.0.0-20230920222752-a9e2c4e288e5/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 *pkg.HackageMetadata, locations ...file.Location) pkg.Package { 10 p := pkg.Package{ 11 Name: name, 12 Version: version, 13 Locations: file.NewLocationSet(locations...), 14 PURL: packageURL(name, version), 15 Language: pkg.Haskell, 16 Type: pkg.HackagePkg, 17 } 18 19 if m != nil { 20 p.MetadataType = pkg.HackageMetadataType 21 p.Metadata = *m 22 } 23 24 p.SetID() 25 26 return p 27 } 28 29 func packageURL(name, version string) string { 30 var qualifiers packageurl.Qualifiers 31 32 return packageurl.NewPackageURL( 33 packageurl.TypeHackage, 34 "", 35 name, 36 version, 37 qualifiers, 38 "", 39 ).ToString() 40 }