github.com/anchore/syft@v1.38.2/syft/pkg/cataloger/ocaml/package.go (about) 1 package ocaml 2 3 import ( 4 "context" 5 6 "github.com/anchore/packageurl-go" 7 "github.com/anchore/syft/syft/file" 8 "github.com/anchore/syft/syft/pkg" 9 ) 10 11 func newOpamPackage(ctx context.Context, m pkg.OpamPackage, fileLocation file.Location) pkg.Package { 12 p := pkg.Package{ 13 Name: m.Name, 14 Version: m.Version, 15 Licenses: pkg.NewLicenseSet(pkg.NewLicensesFromLocationWithContext(ctx, fileLocation, m.Licenses...)...), 16 PURL: opamPackageURL(m.Name, m.Version), 17 Locations: file.NewLocationSet(fileLocation), 18 Type: pkg.OpamPkg, 19 Language: pkg.OCaml, 20 Metadata: m, 21 } 22 23 p.SetID() 24 25 return p 26 } 27 28 func opamPackageURL(name, version string) string { 29 var qualifiers packageurl.Qualifiers 30 31 return packageurl.NewPackageURL( 32 "opam", 33 "", 34 name, 35 version, 36 qualifiers, 37 "", 38 ).ToString() 39 }