-
Notifications
You must be signed in to change notification settings - Fork 819
Expand file tree
/
Copy pathformat.go
More file actions
75 lines (67 loc) · 1.91 KB
/
Copy pathformat.go
File metadata and controls
75 lines (67 loc) · 1.91 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
package format
import (
"strings"
)
const (
UnknownFormat Format = "unknown"
JSONFormat Format = "json"
JSONLinesFormat Format = "jsonl"
TableFormat Format = "table"
CycloneDXFormat Format = "cyclonedx"
CycloneDXJSON Format = "cyclonedx-json"
CycloneDXXML Format = "cyclonedx-xml"
SarifFormat Format = "sarif"
TemplateFormat Format = "template"
// DEPRECATED <-- TODO: remove in v1.0
EmbeddedVEXJSON Format = "embedded-cyclonedx-vex-json"
EmbeddedVEXXML Format = "embedded-cyclonedx-vex-xml"
)
// Format is a dedicated type to represent a specific kind of presenter output format.
type Format string
func (f Format) String() string {
return string(f)
}
// Parse returns the presenter.format specified by the given user input.
func Parse(userInput string) Format {
switch strings.ToLower(userInput) {
case "":
return TableFormat
case strings.ToLower(JSONFormat.String()):
return JSONFormat
case strings.ToLower(JSONLinesFormat.String()), "ndjson":
return JSONLinesFormat
case strings.ToLower(TableFormat.String()):
return TableFormat
case strings.ToLower(SarifFormat.String()):
return SarifFormat
case strings.ToLower(TemplateFormat.String()):
return TemplateFormat
case strings.ToLower(CycloneDXFormat.String()):
return CycloneDXFormat
case strings.ToLower(CycloneDXJSON.String()):
return CycloneDXJSON
case strings.ToLower(CycloneDXXML.String()):
return CycloneDXXML
case strings.ToLower(EmbeddedVEXJSON.String()):
return CycloneDXJSON
case strings.ToLower(EmbeddedVEXXML.String()):
return CycloneDXFormat
default:
return UnknownFormat
}
}
// AvailableFormats is a list of presenter format options available to users.
var AvailableFormats = []Format{
JSONFormat,
JSONLinesFormat,
TableFormat,
CycloneDXFormat,
CycloneDXJSON,
SarifFormat,
TemplateFormat,
}
// DeprecatedFormats TODO: remove in v1.0
var DeprecatedFormats = []Format{
EmbeddedVEXJSON,
EmbeddedVEXXML,
}