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 }