mirror of
https://github.com/anchore/syft.git
synced 2026-10-30 14:02:26 +01:00
* add cyclone json format Signed-off-by: Jonas Galvão Xavier <jonas.agx@gmail.com> * adapt format to sbom.SBOM structure Signed-off-by: Jonas Galvão Xavier <jonas.agx@gmail.com> * cycloneDX json output with official lib Signed-off-by: Jonas Galvão Xavier <jonas.agx@gmail.com> * add cycloneDX 1.3 schema output in xml Signed-off-by: Jonas Galvão Xavier <jonas.agx@gmail.com> * fix lints errors Signed-off-by: Jonas Galvão Xavier <jonas.agx@gmail.com> * tidying go mod Signed-off-by: Jonas Galvão Xavier <jonas.agx@gmail.com> * remove cycloneDX 1.2 format Signed-off-by: Jonas Galvão Xavier <jonas.agx@gmail.com> * update cycloneDX xml schema Signed-off-by: Jonas Galvão Xavier <jonas.agx@gmail.com> * fix cyclone according to schema Signed-off-by: Jonas Galvão Xavier <jonas.agx@gmail.com> * use RFC 2141 URN form of uuid for serial number add schema validation for cycloneDX 1.3 JSON output add yajsv cli for JSON schema validation during tests Signed-off-by: Jonas Galvão Xavier <jonas.agx@gmail.com> * tidying go mod up Signed-off-by: Jonas Galvão Xavier <jonas.agx@gmail.com> * go get json schema validator Signed-off-by: Jonas Galvão Xavier <jonas.agx@gmail.com> * install yajsv without mess with go mod Signed-off-by: Jonas Galvão Xavier <jonas.agx@gmail.com> * reuse code between cycloneDX json & xml encoders Signed-off-by: Jonas Galvão Xavier <jonas.agx@gmail.com> * add output options for cyclone XML add bom.json to .gitignore Signed-off-by: Jonas Galvão Xavier <jonas.agx@gmail.com> * add cyclone json format Signed-off-by: Jonas Galvão Xavier <jonas.agx@gmail.com> * adapt format to sbom.SBOM structure Signed-off-by: Jonas Galvão Xavier <jonas.agx@gmail.com> * cycloneDX json output with official lib Signed-off-by: Jonas Galvão Xavier <jonas.agx@gmail.com> * add cycloneDX 1.3 schema output in xml Signed-off-by: Jonas Galvão Xavier <jonas.agx@gmail.com> * fix lints errors Signed-off-by: Jonas Galvão Xavier <jonas.agx@gmail.com> * tidying go mod Signed-off-by: Jonas Galvão Xavier <jonas.agx@gmail.com> * remove cycloneDX 1.2 format Signed-off-by: Jonas Galvão Xavier <jonas.agx@gmail.com> * update cycloneDX xml schema Signed-off-by: Jonas Galvão Xavier <jonas.agx@gmail.com> * fix cyclone according to schema Signed-off-by: Jonas Galvão Xavier <jonas.agx@gmail.com> * use RFC 2141 URN form of uuid for serial number add schema validation for cycloneDX 1.3 JSON output add yajsv cli for JSON schema validation during tests Signed-off-by: Jonas Galvão Xavier <jonas.agx@gmail.com> * tidying go mod up Signed-off-by: Jonas Galvão Xavier <jonas.agx@gmail.com> * go get json schema validator Signed-off-by: Jonas Galvão Xavier <jonas.agx@gmail.com> * install yajsv without mess with go mod Signed-off-by: Jonas Galvão Xavier <jonas.agx@gmail.com> * reuse code between cycloneDX json & xml encoders Signed-off-by: Jonas Galvão Xavier <jonas.agx@gmail.com> * add output options for cyclone XML add bom.json to .gitignore Signed-off-by: Jonas Galvão Xavier <jonas.agx@gmail.com> * fix cyclone12xml removal Signed-off-by: Jonas Galvão Xavier <jonas.agx@gmail.com> * feedback changes Signed-off-by: Jonas Galvão Xavier <jonas.agx@gmail.com> * go mod tidy Signed-off-by: Jonas Galvão Xavier <jonas.agx@gmail.com>
50 lines
1.4 KiB
Go
50 lines
1.4 KiB
Go
package format
|
|
|
|
import "strings"
|
|
|
|
const (
|
|
UnknownFormatOption Option = "UnknownFormatOption"
|
|
JSONOption Option = "json"
|
|
TextOption Option = "text"
|
|
TableOption Option = "table"
|
|
CycloneDxXMLOption Option = "cyclonedx"
|
|
CycloneDxJSONOption Option = "cyclonedx-json"
|
|
SPDXTagValueOption Option = "spdx-tag-value"
|
|
SPDXJSONOption Option = "spdx-json"
|
|
)
|
|
|
|
var AllOptions = []Option{
|
|
JSONOption,
|
|
TextOption,
|
|
TableOption,
|
|
CycloneDxXMLOption,
|
|
CycloneDxJSONOption,
|
|
SPDXTagValueOption,
|
|
SPDXJSONOption,
|
|
}
|
|
|
|
type Option string
|
|
|
|
func ParseOption(userStr string) Option {
|
|
switch strings.ToLower(userStr) {
|
|
case string(JSONOption):
|
|
return JSONOption
|
|
case string(TextOption):
|
|
return TextOption
|
|
case string(TableOption):
|
|
return TableOption
|
|
case string(CycloneDxXMLOption), "cyclone", "cyclone-dx", "cyclone-dx-xml", "cyclone-xml":
|
|
// NOTE(jonasagx): setting "cyclone" to XML by default for retro-compatibility.
|
|
// If we want to show no preference between XML and JSON please remove it.
|
|
return CycloneDxXMLOption
|
|
case string(CycloneDxJSONOption), "cyclone-json", "cyclone-dx-json":
|
|
return CycloneDxJSONOption
|
|
case string(SPDXTagValueOption), "spdx", "spdx-tagvalue", "spdxtagvalue", "spdx-tv", "spdxtv":
|
|
return SPDXTagValueOption
|
|
case string(SPDXJSONOption), "spdxjson":
|
|
return SPDXJSONOption
|
|
default:
|
|
return UnknownFormatOption
|
|
}
|
|
}
|