Skip to content

Commit bd130e7

Browse files
committed
pkg/ioutils: add ReaderErrWrapper to readers
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <[email protected]> (github: unclejack)
1 parent c93b9e8 commit bd130e7

1 file changed

Lines changed: 20 additions & 0 deletions

File tree

pkg/ioutils/readers.go

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,26 @@ func NewReadCloserWrapper(r io.Reader, closer func() error) io.ReadCloser {
2222
}
2323
}
2424

25+
type readerErrWrapper struct {
26+
reader io.Reader
27+
closer func()
28+
}
29+
30+
func (r *readerErrWrapper) Read(p []byte) (int, error) {
31+
n, err := r.reader.Read(p)
32+
if err != nil {
33+
r.closer()
34+
}
35+
return n, err
36+
}
37+
38+
func NewReaderErrWrapper(r io.Reader, closer func()) io.Reader {
39+
return &readerErrWrapper{
40+
reader: r,
41+
closer: closer,
42+
}
43+
}
44+
2545
type bufReader struct {
2646
sync.Mutex
2747
buf *bytes.Buffer

0 commit comments

Comments
 (0)