custom.go 1006 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package formatter
  2. import (
  3. "strings"
  4. )
  5. const (
  6. imageHeader = "IMAGE"
  7. createdSinceHeader = "CREATED"
  8. createdAtHeader = "CREATED AT"
  9. sizeHeader = "SIZE"
  10. labelsHeader = "LABELS"
  11. nameHeader = "NAME"
  12. driverHeader = "DRIVER"
  13. scopeHeader = "SCOPE"
  14. )
  15. type subContext interface {
  16. FullHeader() string
  17. AddHeader(header string)
  18. }
  19. // HeaderContext provides the subContext interface for managing headers
  20. type HeaderContext struct {
  21. header []string
  22. }
  23. // FullHeader returns the header as a string
  24. func (c *HeaderContext) FullHeader() string {
  25. if c.header == nil {
  26. return ""
  27. }
  28. return strings.Join(c.header, "\t")
  29. }
  30. // AddHeader adds another column to the header
  31. func (c *HeaderContext) AddHeader(header string) {
  32. if c.header == nil {
  33. c.header = []string{}
  34. }
  35. c.header = append(c.header, strings.ToUpper(header))
  36. }
  37. func stripNamePrefix(ss []string) []string {
  38. sss := make([]string, len(ss))
  39. for i, s := range ss {
  40. sss[i] = s[1:]
  41. }
  42. return sss
  43. }