...

Source file src/sigs.k8s.io/cli-utils/pkg/printers/printers.go

Documentation: sigs.k8s.io/cli-utils/pkg/printers

     1  // Copyright 2020 The Kubernetes Authors.
     2  // SPDX-License-Identifier: Apache-2.0
     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 { //nolint:gocritic
    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