github.com/tilt-dev/tilt@v0.33.15-0.20240515162809-0a22ed45d8a0/internal/docker/readcloser.go (about) 1 package docker 2 3 import "io" 4 5 type readCloserWrapper struct { 6 wrapped io.ReadCloser 7 tearDown func() error 8 } 9 10 var _ io.ReadCloser = readCloserWrapper{} 11 12 func WrapReadCloserWithTearDown(wrapped io.ReadCloser, tearDown func() error) readCloserWrapper { 13 return readCloserWrapper{ 14 wrapped: wrapped, 15 tearDown: tearDown, 16 } 17 } 18 19 func (w readCloserWrapper) Read(b []byte) (int, error) { 20 return w.wrapped.Read(b) 21 } 22 23 func (w readCloserWrapper) Close() error { 24 err1 := w.wrapped.Close() 25 err2 := w.tearDown() 26 if err1 != nil { 27 return err1 28 } 29 return err2 30 }