...

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

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

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

View as plain text