printers

package
v0.30.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 17, 2024 License: Apache-2.0 Imports: 25 Imported by: 1,131

Documentation

Overview

Package printers is helper for formatting and printing runtime objects into primitives io.writer.

Index

Constants

This section is empty.

Variables

View Source
var InternalObjectPreventer = &illegalPackageSourceChecker{disallowedPackagePrefixes}
View Source
var (
	InternalObjectPrinterErr = "a versioned object must be passed to a printer"
)

Functions

func AllowsColorOutput added in v0.29.0

func AllowsColorOutput(w io.Writer) bool

AllowsColorOutput returns true if the specified writer is a terminal and the process environment indicates color output is supported and desired.

func EscapeTerminal added in v0.26.0

func EscapeTerminal(in string) string

EscapeTerminal escapes terminal special characters in a human readable (but non-reversible) format.

func GetNewTabWriter added in v0.17.0

func GetNewTabWriter(output io.Writer) *tabwriter.Writer

GetNewTabWriter returns a tabwriter that translates tabbed columns in input into properly aligned text.

func GetObjectGroupKind

func GetObjectGroupKind(obj runtime.Object) schema.GroupKind

func IsInternalObjectError

func IsInternalObjectError(err error) bool

func IsTerminal added in v0.29.0

func IsTerminal(i interface{}) bool

IsTerminal returns whether the passed object is a terminal or not

func WriteEscaped added in v0.26.0

func WriteEscaped(writer io.Writer, output string) error

WriteEscaped replaces unsafe terminal characters with replacement strings and writes them to the given writer.

Types

type GoTemplatePrinter

type GoTemplatePrinter struct {
	// contains filtered or unexported fields
}

GoTemplatePrinter is an implementation of ResourcePrinter which formats data with a Go Template.

func NewGoTemplatePrinter

func NewGoTemplatePrinter(tmpl []byte) (*GoTemplatePrinter, error)

func (*GoTemplatePrinter) AllowMissingKeys

func (p *GoTemplatePrinter) AllowMissingKeys(allow bool)

AllowMissingKeys tells the template engine if missing keys are allowed.

func (*GoTemplatePrinter) PrintObj

func (p *GoTemplatePrinter) PrintObj(obj runtime.Object, w io.Writer) error

PrintObj formats the obj with the Go Template.

type HumanReadablePrinter added in v0.17.0

type HumanReadablePrinter struct {
	// contains filtered or unexported fields
}

HumanReadablePrinter is an implementation of ResourcePrinter which attempts to provide more elegant output. It is not threadsafe, but you may call PrintObj repeatedly; headers will only be printed if the object type changes. This makes it useful for printing items received from watches.

func (*HumanReadablePrinter) PrintObj added in v0.17.0

func (h *HumanReadablePrinter) PrintObj(obj runtime.Object, output io.Writer) error

PrintObj prints the obj in a human-friendly format according to the type of the obj.

type JSONPathPrinter

type JSONPathPrinter struct {
	*jsonpath.JSONPath
	// contains filtered or unexported fields
}

JSONPathPrinter is an implementation of ResourcePrinter which formats data with jsonpath expression.

func NewJSONPathPrinter

func NewJSONPathPrinter(tmpl string) (*JSONPathPrinter, error)

func (*JSONPathPrinter) PrintObj

func (j *JSONPathPrinter) PrintObj(obj runtime.Object, w io.Writer) error

PrintObj formats the obj with the JSONPath Template.

type JSONPrinter

type JSONPrinter struct{}

JSONPrinter is an implementation of ResourcePrinter which outputs an object as JSON.

func (*JSONPrinter) PrintObj

func (p *JSONPrinter) PrintObj(obj runtime.Object, w io.Writer) error

PrintObj is an implementation of ResourcePrinter.PrintObj which simply writes the object to the Writer.

type NamePrinter

type NamePrinter struct {
	// ShortOutput indicates whether an operation should be
	// printed along side the "resource/name" pair for an object.
	ShortOutput bool
	// Operation describes the name of the action that
	// took place on an object, to be included in the
	// finalized "successful" message.
	Operation string
}

NamePrinter is an implementation of ResourcePrinter which outputs "resource/name" pair of an object.

func (*NamePrinter) PrintObj

func (p *NamePrinter) PrintObj(obj runtime.Object, w io.Writer) error

PrintObj is an implementation of ResourcePrinter.PrintObj which decodes the object and print "resource/name" pair. If the object is a List, print all items in it.

type OmitManagedFieldsPrinter added in v0.21.0

type OmitManagedFieldsPrinter struct {
	Delegate ResourcePrinter
}

OmitManagedFieldsPrinter wraps an existing printer and omits the managed fields from the object before printing it.

func (*OmitManagedFieldsPrinter) PrintObj added in v0.21.0

func (p *OmitManagedFieldsPrinter) PrintObj(obj runtime.Object, w io.Writer) error

PrintObj copies the object and omits the managed fields from the copied object before printing it.

type PrintOptions added in v0.17.0

type PrintOptions struct {
	NoHeaders     bool
	WithNamespace bool
	WithKind      bool
	Wide          bool
	ShowLabels    bool
	Kind          schema.GroupKind
	ColumnLabels  []string

	SortBy string

	// indicates if it is OK to ignore missing keys for rendering an output template.
	AllowMissingKeys bool
}

PrintOptions struct defines a struct for various print options

type ResourcePrinter

type ResourcePrinter interface {
	// PrintObj receives a runtime object, formats it and prints it to a writer.
	PrintObj(runtime.Object, io.Writer) error
}

ResourcePrinter is an interface that knows how to print runtime objects.

func NewTablePrinter added in v0.17.0

func NewTablePrinter(options PrintOptions) ResourcePrinter

NewTablePrinter creates a printer suitable for calling PrintObj().

type ResourcePrinterFunc

type ResourcePrinterFunc func(runtime.Object, io.Writer) error

ResourcePrinterFunc is a function that can print objects

func NewDiscardingPrinter

func NewDiscardingPrinter() ResourcePrinterFunc

NewDiscardingPrinter is a printer that discards all objects

func (ResourcePrinterFunc) PrintObj

func (fn ResourcePrinterFunc) PrintObj(obj runtime.Object, w io.Writer) error

PrintObj implements ResourcePrinter

type TypeSetterPrinter

type TypeSetterPrinter struct {
	Delegate ResourcePrinter

	Typer runtime.ObjectTyper
}

TypeSetterPrinter is an implementation of ResourcePrinter wraps another printer with types set on the objects

func NewTypeSetter

func NewTypeSetter(typer runtime.ObjectTyper) *TypeSetterPrinter

NewTypeSetter constructs a wrapping printer with required params

func (*TypeSetterPrinter) PrintObj

func (p *TypeSetterPrinter) PrintObj(obj runtime.Object, w io.Writer) error

PrintObj is an implementation of ResourcePrinter.PrintObj which sets type information on the obj for the duration of printing. It is NOT threadsafe.

func (*TypeSetterPrinter) ToPrinter

func (p *TypeSetterPrinter) ToPrinter(delegate ResourcePrinter) ResourcePrinter

ToPrinter returns a printer (not threadsafe!) that has been wrapped

func (*TypeSetterPrinter) WrapToPrinter

func (p *TypeSetterPrinter) WrapToPrinter(delegate ResourcePrinter, err error) (ResourcePrinter, error)

WrapToPrinter wraps the common ToPrinter method

type WarningPrinter added in v0.25.0

type WarningPrinter struct {
	// contains filtered or unexported fields
}

func NewWarningPrinter added in v0.25.0

func NewWarningPrinter(out io.Writer, opts WarningPrinterOptions) *WarningPrinter

NewWarningPrinter returns an implementation of warningPrinter that outputs warnings to the specified writer.

func (*WarningPrinter) Print added in v0.25.0

func (w *WarningPrinter) Print(message string)

Print prints warnings to the configured writer.

type WarningPrinterOptions added in v0.25.0

type WarningPrinterOptions struct {
	// Color indicates that warning output can include ANSI color codes
	Color bool
}

WarningPrinterOptions controls the behavior of a WarningPrinter constructed using NewWarningPrinter()

type YAMLPrinter

type YAMLPrinter struct {
	// contains filtered or unexported fields
}

YAMLPrinter is an implementation of ResourcePrinter which outputs an object as YAML. The input object is assumed to be in the internal version of an API and is converted to the given version first. If PrintObj() is called multiple times, objects are separated with a '---' separator.

func (*YAMLPrinter) PrintObj

func (p *YAMLPrinter) PrintObj(obj runtime.Object, w io.Writer) error

PrintObj prints the data as YAML.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL