You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
571 B
Go
29 lines
571 B
Go
5 years ago
|
// Copyright 2019 Drone.IO Inc. All rights reserved.
|
||
|
// Use of this source code is governed by the Polyform License
|
||
|
// that can be found in the LICENSE file.
|
||
|
|
||
|
package livelog
|
||
|
|
||
|
import (
|
||
|
"bufio"
|
||
|
"io"
|
||
|
)
|
||
|
|
||
|
// Copy copies from src to dst and removes until either EOF
|
||
|
// is reached on src or an error occurs.
|
||
|
func Copy(dst io.Writer, src io.ReadCloser) error {
|
||
|
r := bufio.NewReader(src)
|
||
|
for {
|
||
|
bytes, err := r.ReadBytes('\n')
|
||
|
if _, err := dst.Write(bytes); err != nil {
|
||
|
return err
|
||
|
}
|
||
|
if err != nil {
|
||
|
if err != io.EOF {
|
||
|
return err
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
}
|
||
|
}
|