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