github.com/nextlinux/gosbom@v0.81.1-0.20230627115839-1ff50c281391/gosbom/pkg/cataloger/elixir/package.go (about)

     1  package elixir
     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(d pkg.MixLockMetadata, locations ...file.Location) pkg.Package {
    11  	p := pkg.Package{
    12  		Name:         d.Name,
    13  		Version:      d.Version,
    14  		Language:     pkg.Elixir,
    15  		Locations:    file.NewLocationSet(locations...),
    16  		PURL:         packageURL(d),
    17  		Type:         pkg.HexPkg,
    18  		MetadataType: pkg.MixLockMetadataType,
    19  		Metadata:     d,
    20  	}
    21  
    22  	p.SetID()
    23  
    24  	return p
    25  }
    26  
    27  func packageURL(m pkg.MixLockMetadata) string {
    28  	var qualifiers packageurl.Qualifiers
    29  
    30  	return packageurl.NewPackageURL(
    31  		packageurl.TypeHex,
    32  		"",
    33  		m.Name,
    34  		m.Version,
    35  		qualifiers,
    36  		"",
    37  	).ToString()
    38  }