github.1git.de/docker/cli@v26.1.3+incompatible/cli/command/formatter/custom.go (about)

     1  // FIXME(thaJeztah): remove once we are a module; the go:build directive prevents go from downgrading language version to go1.16:
     2  //go:build go1.19
     3  
     4  package formatter
     5  
     6  import "strings"
     7  
     8  // Common header constants
     9  const (
    10  	CreatedSinceHeader = "CREATED"
    11  	CreatedAtHeader    = "CREATED AT"
    12  	SizeHeader         = "SIZE"
    13  	LabelsHeader       = "LABELS"
    14  	NameHeader         = "NAME"
    15  	DescriptionHeader  = "DESCRIPTION"
    16  	DriverHeader       = "DRIVER"
    17  	ScopeHeader        = "SCOPE"
    18  	StateHeader        = "STATE"
    19  	StatusHeader       = "STATUS"
    20  	PortsHeader        = "PORTS"
    21  	ImageHeader        = "IMAGE"
    22  	ErrorHeader        = "ERROR"
    23  	ContainerIDHeader  = "CONTAINER ID"
    24  )
    25  
    26  // SubContext defines what Context implementation should provide
    27  type SubContext interface {
    28  	FullHeader() any
    29  }
    30  
    31  // SubHeaderContext is a map destined to formatter header (table format)
    32  type SubHeaderContext map[string]string
    33  
    34  // Label returns the header label for the specified string
    35  func (c SubHeaderContext) Label(name string) string {
    36  	n := strings.Split(name, ".")
    37  	r := strings.NewReplacer("-", " ", "_", " ")
    38  	h := r.Replace(n[len(n)-1])
    39  
    40  	return h
    41  }
    42  
    43  // HeaderContext provides the subContext interface for managing headers
    44  type HeaderContext struct {
    45  	Header any
    46  }
    47  
    48  // FullHeader returns the header as an interface
    49  func (c *HeaderContext) FullHeader() any {
    50  	return c.Header
    51  }