...
1 package linux
2
3 import (
4 "fmt"
5 "io"
6 )
7
8 type LinePrefixPipe struct {
9 reader io.Reader
10 }
11
12 func NewLinePrefixPipe(r io.Reader) *LinePrefixPipe {
13 return &LinePrefixPipe{reader: r}
14 }
15
16 func (l *LinePrefixPipe) Read([]byte) (int, error) {
17 buf := make([]byte, 8192)
18 var out_err error
19 for {
20 n, read_err := l.reader.Read(buf)
21 if n != 0 {
22 xerr := l.newBytes(buf[:n])
23 if xerr != nil {
24 out_err = xerr
25 break
26 }
27 }
28 if read_err != nil {
29 if read_err != io.EOF {
30 out_err = read_err
31 }
32 break
33 }
34 }
35 if out_err != nil {
36 fmt.Printf("Error reading: %s\n", out_err)
37 }
38 return 0, nil
39 }
40
41 func (l *LinePrefixPipe) newBytes([]byte) error {
42 return nil
43 }
44
View as plain text