mirror of
https://github.com/anchore/syft.git
synced 2026-11-05 08:56:41 +01:00
feat: Add R cataloger (#1790)
Add a cataloger that detects installed R packages by looking for DESCRIPTION files. The base R package is now picked up in coverageImage tests in test/cli/packages_cmd_test.go, so increment expected package counts for the tests that use that image. Signed-off-by: Will Murphy <will.murphy@anchore.com>
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
package r
|
||||
|
||||
import (
|
||||
"github.com/anchore/packageurl-go"
|
||||
"github.com/anchore/syft/syft/pkg"
|
||||
"github.com/anchore/syft/syft/source"
|
||||
)
|
||||
|
||||
func newPackage(pd parseData, locations ...source.Location) pkg.Package {
|
||||
locationSet := source.NewLocationSet()
|
||||
for _, loc := range locations {
|
||||
locationSet.Add(loc.WithAnnotation(pkg.EvidenceAnnotationKey, pkg.PrimaryEvidenceAnnotation))
|
||||
}
|
||||
result := pkg.Package{
|
||||
Name: pd.Package,
|
||||
Version: pd.Version,
|
||||
Locations: locationSet,
|
||||
Licenses: []string{pd.License},
|
||||
Language: pkg.R,
|
||||
Type: pkg.Rpkg,
|
||||
PURL: packageURL(pd),
|
||||
MetadataType: pkg.RDescriptionFileMetadataType,
|
||||
Metadata: pd.RDescriptionFileMetadata,
|
||||
}
|
||||
|
||||
result.SetID()
|
||||
return result
|
||||
}
|
||||
|
||||
func packageURL(m parseData) string {
|
||||
return packageurl.NewPackageURL("cran", "", m.Package, m.Version, nil, "").ToString()
|
||||
}
|
||||
Reference in New Issue
Block a user