(data []byte)
| 21 | } |
| 22 | |
| 23 | func (w *TailWriter) Write(data []byte) (int, error) { |
| 24 | w.TotalWritten += len(data) |
| 25 | |
| 26 | if len(data) > len(w.Buffer) { |
| 27 | copy(w.Buffer, data[len(data)-len(w.Buffer):]) |
| 28 | w.Head = 0 |
| 29 | } else { |
| 30 | n := copy(w.Buffer[w.Head:], data) |
| 31 | if w.Head >= len(w.Buffer) { |
| 32 | w.Head = 0 |
| 33 | } |
| 34 | |
| 35 | n = copy(w.Buffer[:], data[n:]) |
| 36 | w.Head += n |
| 37 | } |
| 38 | |
| 39 | return len(data), nil |
| 40 | } |
| 41 | |
| 42 | func (tw *TailWriter) WriteTo(w io.Writer) { |
| 43 | if tw.TotalWritten <= len(tw.Buffer) { |