diff --git a/grype/presenter/cyclonedx/presenter.go b/grype/presenter/cyclonedx/presenter.go index 61b1c317c75..78565428cc6 100644 --- a/grype/presenter/cyclonedx/presenter.go +++ b/grype/presenter/cyclonedx/presenter.go @@ -24,14 +24,14 @@ type Presenter struct { } // NewPresenter is a *Presenter constructor -func NewPresenter(pb models.PresenterBundle) *Presenter { +func NewPresenter(pb models.PresenterBundle, format cyclonedx.BOMFileFormat) *Presenter { return &Presenter{ results: pb.Matches, packages: pb.Packages, metadataProvider: pb.MetadataProvider, srcMetadata: pb.Context.Source, sbom: pb.SBOM, - format: cyclonedx.BOMFileFormatJSON, + format: format, } } diff --git a/grype/presenter/cyclonedxvex/presenter.go b/grype/presenter/cyclonedxvex/presenter.go deleted file mode 100644 index 430415d4f6d..00000000000 --- a/grype/presenter/cyclonedxvex/presenter.go +++ /dev/null @@ -1,40 +0,0 @@ -package cyclonedxvex - -import ( - "io" - - "github.com/CycloneDX/cyclonedx-go" - "github.com/anchore/grype/grype/match" - "github.com/anchore/grype/grype/pkg" - "github.com/anchore/grype/grype/presenter/models" - "github.com/anchore/grype/grype/vulnerability" - "github.com/anchore/syft/syft/sbom" - "github.com/anchore/syft/syft/source" -) - -// Presenter writes a CycloneDX report from the given Matches and Scope contents -type Presenter struct { - results match.Matches - packages []pkg.Package - metadataProvider vulnerability.MetadataProvider - srcMetadata *source.Metadata - sbom *sbom.SBOM - format cyclonedx.BOMFileFormat -} - -func NewPresenter(pb models.PresenterBundle, format cyclonedx.BOMFileFormat) *Presenter { - return &Presenter{ - results: pb.Matches, - packages: pb.Packages, - metadataProvider: pb.MetadataProvider, - srcMetadata: pb.Context.Source, - sbom: pb.SBOM, - format: format, - } -} - -// Present creates a CycloneDX-based reporting -func (pres *Presenter) Present(output io.Writer) error { - // update to use syft library - return nil -} diff --git a/grype/presenter/format.go b/grype/presenter/format.go index 8613c7fff62..9f74b073e3d 100644 --- a/grype/presenter/format.go +++ b/grype/presenter/format.go @@ -31,12 +31,12 @@ func parse(userInput string) format { return jsonFormat case strings.ToLower(tableFormat.String()): return tableFormat - case strings.ToLower(cycloneDXFormat.String()): - return cycloneDXFormat case strings.ToLower(sarifFormat.String()): return sarifFormat case strings.ToLower(templateFormat.String()): return templateFormat + case strings.ToLower(cycloneDXFormat.String()): + return cycloneDXFormat case strings.ToLower(embeddedVEXJSON.String()): return embeddedVEXJSON case strings.ToLower(embeddedVEXXML.String()): diff --git a/grype/presenter/presenter.go b/grype/presenter/presenter.go index f8b52efce74..e3575a4d58f 100644 --- a/grype/presenter/presenter.go +++ b/grype/presenter/presenter.go @@ -29,12 +29,14 @@ func GetPresenter(c Config, pb models.PresenterBundle) Presenter { return table.NewPresenter(pb) } return table.NewPresenter(pb) + // NOTE: cyclonedx is identical to embeddedVEXJSON + // The cyclonedx library only provides two BOM formats: JSON and XML case cycloneDXFormat: - return cyclonedx.NewPresenter(pb) + return cyclonedx.NewPresenter(pb, cyclonedxLib.BOMFileFormatJSON) case embeddedVEXJSON: return cyclonedxvex.NewPresenter(pb, cyclonedxLib.BOMFileFormatJSON) case embeddedVEXXML: - return cyclonedxvex.NewPresenter(pb, cyclonedxLib.BOMFileFormatXML) + return cyclonedx.NewPresenter(pb, cyclonedxLib.BOMFileFormatXML) case sarifFormat: return sarif.NewPresenter(pb) case templateFormat: