github.com/nextlinux/gosbom@v0.81.1-0.20230627115839-1ff50c281391/gosbom/pkg/cataloger/haskell/package.go (about) 1 package haskell 2 3 import ( 4 "github.com/nextlinux/gosbom/gosbom/file" 5 "github.com/nextlinux/gosbom/gosbom/pkg" 6 7 "github.com/anchore/packageurl-go" 8 ) 9 10 func newPackage(name, version string, m *pkg.HackageMetadata, locations ...file.Location) pkg.Package { 11 p := pkg.Package{ 12 Name: name, 13 Version: version, 14 Locations: file.NewLocationSet(locations...), 15 PURL: packageURL(name, version), 16 Language: pkg.Haskell, 17 Type: pkg.HackagePkg, 18 } 19 20 if m != nil { 21 p.MetadataType = pkg.HackageMetadataType 22 p.Metadata = *m 23 } 24 25 p.SetID() 26 27 return p 28 } 29 30 func packageURL(name, version string) string { 31 var qualifiers packageurl.Qualifiers 32 33 return packageurl.NewPackageURL( 34 packageurl.TypeHackage, 35 "", 36 name, 37 version, 38 qualifiers, 39 "", 40 ).ToString() 41 }