syft/internal/capabilities/generate/cataloger_names.go
Alex Goodman d6512456b3 improve testing a docs
Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>
2025-10-29 10:08:29 -04:00

29 lines
844 B
Go

// this file retrieves the canonical list of cataloger names and their selectors from syft's task factories.
package main
import (
"fmt"
"sort"
"github.com/anchore/syft/internal/capabilities"
"github.com/anchore/syft/internal/task"
)
// allPackageCatalogerInfo gets all package cataloger info (names and selectors) from task factories
func allPackageCatalogerInfo() ([]capabilities.CatalogerInfo, error) {
pkgTaskFactories := task.DefaultPackageTaskFactories()
allPkgTasks, err := pkgTaskFactories.Tasks(task.DefaultCatalogingFactoryConfig())
if err != nil {
return nil, fmt.Errorf("unable to create pkg cataloger tasks: %w", err)
}
infos := capabilities.ExtractCatalogerInfo(allPkgTasks)
// sort by name for consistency
sort.Slice(infos, func(i, j int) bool {
return infos[i].Name < infos[j].Name
})
return infos, nil
}