diff --git a/Taskfile.yaml b/Taskfile.yaml index e532ef851..a0ba8cfb5 100644 --- a/Taskfile.yaml +++ b/Taskfile.yaml @@ -221,7 +221,8 @@ tasks: cmds: - "go test -v ./cmd/syft/internal/test/integration" # exercise most of the CLI with the data race detector - - "go run -race cmd/syft/main.go alpine:latest" + # we use a larger image to ensure we're using multiple catalogers at a time + - "go run -race cmd/syft/main.go anchore/test_images:grype-quality-dotnet-69f15d2" validate-cyclonedx-schema: desc: Validate that Syft produces valid CycloneDX documents diff --git a/syft/pkg/cataloger/generic/cataloger.go b/syft/pkg/cataloger/generic/cataloger.go index 91790d2b7..77863dd6d 100644 --- a/syft/pkg/cataloger/generic/cataloger.go +++ b/syft/pkg/cataloger/generic/cataloger.go @@ -154,7 +154,6 @@ func (c *Cataloger) Name() string { func (c *Cataloger) Catalog(ctx context.Context, resolver file.Resolver) ([]pkg.Package, []artifact.Relationship, error) { var packages []pkg.Package var relationships []artifact.Relationship - var errs error lgr := log.Nested("cataloger", c.upstreamCataloger) @@ -167,7 +166,7 @@ func (c *Cataloger) Catalog(ctx context.Context, resolver file.Resolver) ([]pkg. pkgs []pkg.Package rels []artifact.Relationship } - errs = sync.Collect(&ctx, cataloging.ExecutorFile, sync.ToSeq(c.selectFiles(resolver)), func(req request) (result, error) { + errs := sync.Collect(&ctx, cataloging.ExecutorFile, sync.ToSeq(c.selectFiles(resolver)), func(req request) (result, error) { location, parser := req.Location, req.Parser log.WithFields("path", location.RealPath).Trace("parsing file contents") @@ -175,9 +174,9 @@ func (c *Cataloger) Catalog(ctx context.Context, resolver file.Resolver) ([]pkg. discoveredPackages, discoveredRelationships, err := invokeParser(ctx, resolver, location, lgr, parser, &env) if err != nil { // parsers may return errors and valid packages / relationships - errs = unknown.Append(errs, location, err) + err = unknown.New(location, err) } - return result{discoveredPackages, discoveredRelationships}, errs + return result{discoveredPackages, discoveredRelationships}, err }, func(_ request, res result) { for _, p := range res.pkgs { p.FoundBy = c.upstreamCataloger