github.com/anchore/syft@v1.4.2-0.20240516191711-1bec1fc5d397/syft/pkg/cataloger/erlang/package.go (about) 1 package erlang 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 newPackageFromRebar(d pkg.ErlangRebarLockEntry, locations ...file.Location) pkg.Package { 10 p := pkg.Package{ 11 Name: d.Name, 12 Version: d.Version, 13 Language: pkg.Erlang, 14 Locations: file.NewLocationSet(locations...), 15 PURL: packageURLFromRebar(d), 16 Type: pkg.HexPkg, 17 Metadata: d, 18 } 19 20 p.SetID() 21 22 return p 23 } 24 25 func packageURLFromRebar(m pkg.ErlangRebarLockEntry) string { 26 var qualifiers packageurl.Qualifiers 27 28 return packageurl.NewPackageURL( 29 packageurl.TypeHex, 30 "", 31 m.Name, 32 m.Version, 33 qualifiers, 34 "", 35 ).ToString() 36 } 37 38 func newPackageFromOTP(name, version string, locations ...file.Location) pkg.Package { 39 p := pkg.Package{ 40 Name: name, 41 Version: version, 42 Language: pkg.Erlang, 43 Locations: file.NewLocationSet(locations...), 44 PURL: packageURLFromOTP(name, version), 45 Type: pkg.ErlangOTPPkg, 46 } 47 48 p.SetID() 49 50 return p 51 } 52 53 func packageURLFromOTP(name, version string) string { 54 var qualifiers packageurl.Qualifiers 55 56 return packageurl.NewPackageURL( 57 packageurl.TypeOTP, 58 "", 59 name, 60 version, 61 qualifiers, 62 "", 63 ).ToString() 64 }