mirror of
https://github.com/anchore/syft.git
synced 2026-11-02 23:46:35 +01:00
Add SPDX support (#445)
* add initial spdx support Signed-off-by: Alex Goodman <alex.goodman@anchore.com> * expose FileOwner and use in SPDX presenter Signed-off-by: Alex Goodman <alex.goodman@anchore.com> * add initial json support for SPDX Signed-off-by: Alex Goodman <alex.goodman@anchore.com> * add remaining package fields Signed-off-by: Alex Goodman <alex.goodman@anchore.com> * add spdx license list generation + tests Signed-off-by: Alex Goodman <alex.goodman@anchore.com> * keep fileOwner unexported from pkg Signed-off-by: Alex Goodman <alex.goodman@anchore.com> * restore cli test util Signed-off-by: Alex Goodman <alex.goodman@anchore.com> * add external refs to spdx tag-value format Signed-off-by: Alex Goodman <alex.goodman@anchore.com> * add golang support to CPE generation Signed-off-by: Alex Goodman <alex.goodman@anchore.com> * use tag-value format as default "spdx" format flavor Signed-off-by: Alex Goodman <alex.goodman@anchore.com> * add tests around spdx presenters + refactor presenter tests Signed-off-by: Alex Goodman <alex.goodman@anchore.com> * add bouncer exception for spdx tools-golang repo Signed-off-by: Alex Goodman <alex.goodman@anchore.com> * remove spdx model questions Signed-off-by: Alex Goodman <alex.goodman@anchore.com>
This commit is contained in:
@@ -20,6 +20,10 @@ func Presenter(option PresenterOption, config PresenterConfig) presenter.Present
|
||||
return packages.NewTablePresenter(config.Catalog)
|
||||
case CycloneDxPresenterOption:
|
||||
return packages.NewCycloneDxPresenter(config.Catalog, config.SourceMetadata)
|
||||
case SPDXTagValuePresenterOption:
|
||||
return packages.NewSPDXTagValuePresenter(config.Catalog, config.SourceMetadata)
|
||||
case SPDXJSONPresenterOption:
|
||||
return packages.NewSPDXJSONPresenter(config.Catalog, config.SourceMetadata)
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -3,11 +3,13 @@ package packages
|
||||
import "strings"
|
||||
|
||||
const (
|
||||
UnknownPresenterOption PresenterOption = "UnknownPresenterOption"
|
||||
JSONPresenterOption PresenterOption = "json"
|
||||
TextPresenterOption PresenterOption = "text"
|
||||
TablePresenterOption PresenterOption = "table"
|
||||
CycloneDxPresenterOption PresenterOption = "cyclonedx"
|
||||
UnknownPresenterOption PresenterOption = "UnknownPresenterOption"
|
||||
JSONPresenterOption PresenterOption = "json"
|
||||
TextPresenterOption PresenterOption = "text"
|
||||
TablePresenterOption PresenterOption = "table"
|
||||
CycloneDxPresenterOption PresenterOption = "cyclonedx"
|
||||
SPDXTagValuePresenterOption PresenterOption = "spdx-tag-value"
|
||||
SPDXJSONPresenterOption PresenterOption = "spdx-json"
|
||||
)
|
||||
|
||||
var AllPresenters = []PresenterOption{
|
||||
@@ -15,6 +17,8 @@ var AllPresenters = []PresenterOption{
|
||||
TextPresenterOption,
|
||||
TablePresenterOption,
|
||||
CycloneDxPresenterOption,
|
||||
SPDXTagValuePresenterOption,
|
||||
SPDXJSONPresenterOption,
|
||||
}
|
||||
|
||||
type PresenterOption string
|
||||
@@ -29,6 +33,10 @@ func ParsePresenterOption(userStr string) PresenterOption {
|
||||
return TablePresenterOption
|
||||
case string(CycloneDxPresenterOption), "cyclone", "cyclone-dx":
|
||||
return CycloneDxPresenterOption
|
||||
case string(SPDXTagValuePresenterOption), "spdx", "spdx-tagvalue", "spdxtagvalue", "spdx-tv":
|
||||
return SPDXTagValuePresenterOption
|
||||
case string(SPDXJSONPresenterOption), "spdxjson":
|
||||
return SPDXJSONPresenterOption
|
||||
default:
|
||||
return UnknownPresenterOption
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user