in pkg/text/colortabwriter.go [55:104]
func (c *ColorTabWriter) Flush() {
maxWidth := 0
for _, line := range c.contents {
// ensure we track a cell width for every cell
for len(line) > len(c.cellWidths) {
c.cellWidths = append(c.cellWidths, 0)
}
for i, cell := range line {
cellLen := strlen(cell)
if cellLen > c.cellWidths[i] {
c.cellWidths[i] = cellLen
}
if cellLen > maxWidth {
maxWidth = cellLen
}
}
}
padding := make([]byte, maxWidth+2)
for i := range padding {
if debug {
padding[i] = '.'
} else {
padding[i] = ' '
}
}
for _, line := range c.contents {
if len(line) == 0 {
continue
}
for i, cell := range line {
// collapse empty columns
if c.cellWidths[i] == 0 {
continue
}
cellStrLen := strlen(cell)
cellPadding := c.cellWidths[i] + c.padding - cellStrLen
if debug {
c.output.Write([]byte("|"))
}
c.output.Write(cell)
c.output.Write(padding[0:cellPadding])
}
c.output.Write([]byte("\n"))
}
c.contents = nil
c.cellWidths = nil
}