getString returns all buffers appended and separated by a newline.
()
| 54 | |
| 55 | // getString returns all buffers appended and separated by a newline. |
| 56 | func (p *MultiPrinter) getString() string { |
| 57 | var buffer bytes.Buffer |
| 58 | for _, b := range p.buffers { |
| 59 | s := b.String() |
| 60 | s = strings.Trim(s, "\n") |
| 61 | |
| 62 | parts := strings.Split(s, "\r") // only get the last override |
| 63 | |
| 64 | // check if the last part is empty, if so remove it, repeat until not |
| 65 | // empty. If there is no part left, don't do anything |
| 66 | for len(parts) > 0 && parts[len(parts)-1] == "" { |
| 67 | parts = parts[:len(parts)-1] |
| 68 | } |
| 69 | |
| 70 | if len(parts) > 0 { |
| 71 | s = strings.Trim(parts[len(parts)-1], "\n\r") |
| 72 | buffer.WriteString(s) |
| 73 | buffer.WriteString("\n") |
| 74 | } |
| 75 | } |
| 76 | |
| 77 | return buffer.String() |
| 78 | } |
| 79 | |
| 80 | func (p *MultiPrinter) Start() (*MultiPrinter, error) { |
| 81 | p.IsActive = true |