...

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

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

     1package main
     2
     3import (
     4	"fmt"
     5	"io"
     6)
     7
     8type comDefaultReader struct {
     9	pipe            io.ReadCloser
    10	notused_printer *LinePrefixPipe
    11}
    12
    13func newDefaultReader(pipe io.ReadCloser) *comDefaultReader {
    14	c := &comDefaultReader{pipe: pipe, notused_printer: NewLinePrefixPipe(pipe)}
    15	go c.read_loop()
    16	return nil
    17}
    18func (r *comDefaultReader) Read([]byte) (int, error) {
    19	return 0, nil
    20}
    21func (r *comDefaultReader) newBytes(buf []byte) error {
    22	s := string(buf)
    23	fmt.Print(s)
    24	return nil
    25}
    26func (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}

View as plain text