...

Source file src/golang.conradwood.net/go-easyops/linux/line_prefix_pipe.go

Documentation: golang.conradwood.net/go-easyops/linux

     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