lumber/linesplitwriter.go

26 lines
365 B
Go

package main
import (
"bytes"
"io"
)
type lineSplittingWriter struct {
writer io.Writer
}
func (lsw lineSplittingWriter) Write(p []byte) (int, error) {
for _, line := range bytes.Split(p, []byte("\n")) {
if len(line) == 0 {
continue
}
_, err := lsw.writer.Write(append(line, '\n'))
if err != nil {
return -1, err
}
}
return len(p), nil
}