...
1
2
3
4 package printers
5
6 import (
7 "k8s.io/cli-runtime/pkg/genericclioptions"
8 "sigs.k8s.io/cli-utils/pkg/common"
9 "sigs.k8s.io/cli-utils/pkg/print/list"
10 "sigs.k8s.io/cli-utils/pkg/printers/events"
11 "sigs.k8s.io/cli-utils/pkg/printers/json"
12 "sigs.k8s.io/cli-utils/pkg/printers/printer"
13 "sigs.k8s.io/cli-utils/pkg/printers/table"
14 )
15
16 const (
17 EventsPrinter = "events"
18 TablePrinter = "table"
19 JSONPrinter = "json"
20 )
21
22 func GetPrinter(printerType string, ioStreams genericclioptions.IOStreams) printer.Printer {
23 switch printerType {
24 case TablePrinter:
25 return &table.Printer{
26 IOStreams: ioStreams,
27 }
28 case JSONPrinter:
29 return &list.BaseListPrinter{
30 FormatterFactory: func(previewStrategy common.DryRunStrategy) list.Formatter {
31 return json.NewFormatter(ioStreams, previewStrategy)
32 },
33 }
34 default:
35 return events.NewPrinter(ioStreams)
36 }
37 }
38
39 func SupportedPrinters() []string {
40 return []string{EventsPrinter, TablePrinter, JSONPrinter}
41 }
42
43 func DefaultPrinter() string {
44 return EventsPrinter
45 }
46
47 func ValidatePrinterType(printerType string) bool {
48 for _, p := range SupportedPrinters() {
49 if printerType == p {
50 return true
51 }
52 }
53 return false
54 }
55
View as plain text