feat: haproxy binary matcher (#1591)

Signed-off-by: Benji Visser <benji@093b.org>
This commit is contained in:
Benji Visser
2023-02-23 14:39:08 -05:00
committed by GitHub
parent 0c05855131
commit abfec62219
6 changed files with 63 additions and 0 deletions
+15
View File
@@ -51,6 +51,21 @@ type classifier struct {
// evidenceMatcher is a function called to catalog Packages that match some sort of evidence
type evidenceMatcher func(classifier classifier, reader source.LocationReadCloser) ([]pkg.Package, error)
func evidenceMatchers(matchers ...evidenceMatcher) evidenceMatcher {
return func(classifier classifier, reader source.LocationReadCloser) ([]pkg.Package, error) {
for _, matcher := range matchers {
match, err := matcher(classifier, reader)
if err != nil {
return nil, err
}
if match != nil {
return match, nil
}
}
return nil, nil
}
}
func fileNameTemplateVersionMatcher(fileNamePattern string, contentTemplate string) evidenceMatcher {
pat := regexp.MustCompile(fileNamePattern)
return func(classifier classifier, reader source.LocationReadCloser) ([]pkg.Package, error) {