mirror of
https://github.com/yannh/kubeconform.git
synced 2026-02-12 06:29:23 +00:00
45 lines
763 B
Go
45 lines
763 B
Go
package output
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
)
|
|
|
|
type result struct {
|
|
Filename string `json:"filename"`
|
|
Status string `json:"status"`
|
|
Msg string `json:"msg"`
|
|
}
|
|
|
|
type JSONOutput struct {
|
|
results []result
|
|
}
|
|
|
|
func NewJSONOutput() Output{
|
|
return &JSONOutput{
|
|
results: []result{},
|
|
}
|
|
}
|
|
|
|
func (o *JSONOutput) Write(filename string,err error, skipped bool) {
|
|
status := "VALID"
|
|
msg := ""
|
|
if err != nil {
|
|
status = "ERROR"
|
|
msg = err.Error()
|
|
}
|
|
if skipped {
|
|
status = "SKIPPED"
|
|
}
|
|
|
|
o.results = append(o.results, result{Filename: filename, Status: status, Msg: msg})
|
|
}
|
|
|
|
func (o *JSONOutput) Flush() {
|
|
res, err := json.MarshalIndent(o.results,"", " ")
|
|
if err != nil {
|
|
fmt.Printf("error print results: %s", err)
|
|
return
|
|
}
|
|
fmt.Printf("%s\n", res)
|
|
}
|