mirror of
https://github.com/anchore/syft.git
synced 2026-11-01 23:16:30 +01:00
feat: Add Java binary catalogers (#1392)
This commit is contained in:
@@ -81,22 +81,10 @@ func fileNameTemplateVersionMatcher(fileNamePattern string, contentTemplate stri
|
||||
}
|
||||
|
||||
matchMetadata := internal.MatchNamedCaptureGroups(tmplPattern, string(contents))
|
||||
|
||||
version, ok := matchMetadata["version"]
|
||||
if ok {
|
||||
return singlePackage(classifier, reader, version), nil
|
||||
}
|
||||
|
||||
return nil, nil
|
||||
return singlePackage(classifier, reader, matchMetadata), nil
|
||||
}
|
||||
}
|
||||
|
||||
func patternEndingWithNull(pattern string) string {
|
||||
bytes := []byte(pattern)
|
||||
bytes = append(bytes, 0)
|
||||
return string(bytes)
|
||||
}
|
||||
|
||||
func fileContentsVersionMatcher(pattern string) evidenceMatcher {
|
||||
pat := regexp.MustCompile(pattern)
|
||||
return func(classifier classifier, reader source.LocationReadCloser) ([]pkg.Package, error) {
|
||||
@@ -106,11 +94,7 @@ func fileContentsVersionMatcher(pattern string) evidenceMatcher {
|
||||
}
|
||||
|
||||
matchMetadata := internal.MatchNamedCaptureGroups(pat, string(contents))
|
||||
version, ok := matchMetadata["version"]
|
||||
if ok {
|
||||
return singlePackage(classifier, reader, version), nil
|
||||
}
|
||||
return nil, nil
|
||||
return singlePackage(classifier, reader, matchMetadata), nil
|
||||
}
|
||||
}
|
||||
|
||||
@@ -122,10 +106,18 @@ func mustPURL(purl string) packageurl.PackageURL {
|
||||
return p
|
||||
}
|
||||
|
||||
func singlePackage(classifier classifier, reader source.LocationReadCloser, version string) []pkg.Package {
|
||||
func singlePackage(classifier classifier, reader source.LocationReadCloser, matchMetadata map[string]string) []pkg.Package {
|
||||
version, ok := matchMetadata["version"]
|
||||
if !ok {
|
||||
return nil
|
||||
}
|
||||
|
||||
update := matchMetadata["update"]
|
||||
|
||||
var cpes []pkg.CPE
|
||||
for _, cpe := range classifier.CPEs {
|
||||
cpe.Version = version
|
||||
cpe.Update = update
|
||||
cpes = append(cpes, cpe)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user