src/server/pkg/tabwriter/tabwriter.go
func NewWriter(w io.Writer, header string) *Writer {
	if header[len(header)-1] != '\n' {
		panic("header must end in a new line")
	}
	tabwriter := ansiterm.NewTabWriter(w, 0, 1, 1, ' ', 0)
	tabwriter.Write([]byte(header))
	return &Writer{
		w:      tabwriter,
		lines:  1, // 1 because we just printed the header
		header: []byte(header),
	}
}
func NewWriter(w io.Writer, header string) *Writer {
	if header[len(header)-1] != '\n' {
		panic("header must end in a new line")
	}
	tabwriter := ansiterm.NewTabWriter(w, 0, 1, 1, ' ', 0)
	tabwriter.Write([]byte(header))
	return &Writer{
		w:      tabwriter,
		lines:  1, // 1 because we just printed the header
		header: []byte(header),
	}
}
// NewWriter returns a new Writer, it will flush when
// it gets termHeight many lines, including the header line.
// The header line will be reprinted termHeight many lines have been written.
// NewStreamingWriter will panic if it's given a header that doesn't end in \n.