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  }