github.com/jlmeeker/kismatic@v1.10.1-0.20180612190640-57f9005a1f1a/pkg/inspector/cmd/printer.go (about) 1 package cmd 2 3 import ( 4 "encoding/json" 5 "fmt" 6 "io" 7 "text/tabwriter" 8 9 "github.com/apprenda/kismatic/pkg/inspector/rule" 10 ) 11 12 func printResults(out io.Writer, results []rule.Result, outputType string) error { 13 switch outputType { 14 case "json": 15 return printResultsAsJSON(out, results) 16 case "table": 17 return printResultsAsTable(out, results) 18 default: 19 return fmt.Errorf("output type %q not supported", outputType) 20 } 21 } 22 23 func printResultsAsJSON(out io.Writer, results []rule.Result) error { 24 err := json.NewEncoder(out).Encode(results) 25 if err != nil { 26 return fmt.Errorf("error marshaling results as JSON: %v", err) 27 } 28 return nil 29 } 30 31 func printResultsAsTable(out io.Writer, results []rule.Result) error { 32 w := tabwriter.NewWriter(out, 1, 8, 4, '\t', 0) 33 fmt.Fprintf(w, "CHECK\tSUCCESS\tMSG\n") 34 for _, r := range results { 35 fmt.Fprintf(w, "%s\t%t\t%v\n", r.Name, r.Success, r.Error) 36 } 37 w.Flush() 38 return nil 39 }