| package formatter |
| |
| import ( |
| "strings" |
| ) |
| |
| const ( |
| imageHeader = "IMAGE" |
| createdSinceHeader = "CREATED" |
| createdAtHeader = "CREATED AT" |
| sizeHeader = "SIZE" |
| labelsHeader = "LABELS" |
| nameHeader = "NAME" |
| driverHeader = "DRIVER" |
| scopeHeader = "SCOPE" |
| ) |
| |
| type subContext interface { |
| FullHeader() string |
| AddHeader(header string) |
| } |
| |
| // HeaderContext provides the subContext interface for managing headers |
| type HeaderContext struct { |
| header []string |
| } |
| |
| // FullHeader returns the header as a string |
| func (c *HeaderContext) FullHeader() string { |
| if c.header == nil { |
| return "" |
| } |
| return strings.Join(c.header, "\t") |
| } |
| |
| // AddHeader adds another column to the header |
| func (c *HeaderContext) AddHeader(header string) { |
| if c.header == nil { |
| c.header = []string{} |
| } |
| c.header = append(c.header, strings.ToUpper(header)) |
| } |
| |
| func stripNamePrefix(ss []string) []string { |
| sss := make([]string, len(ss)) |
| for i, s := range ss { |
| sss[i] = s[1:] |
| } |
| |
| return sss |
| } |