all repos — homestead @ bd77f727dca007014f42269b9dd48b92df28f657

Code for my website

extract multiwritecloser

Alan Pearce
commit

bd77f727dca007014f42269b9dd48b92df28f657

parent

2277132a99c598cbc8d3ed7a6ddc30c176848206

1 file changed, 3 insertions(+), 26 deletions(-)

changed files
M internal/storage/files/writer.gointernal/storage/files/writer.go
@@ -8,6 +8,7 @@ "path/filepath"
"time" "go.alanpearce.eu/website/internal/buffer" + "go.alanpearce.eu/website/internal/multibuf" "go.alanpearce.eu/website/internal/storage" "go.alanpearce.eu/x/log"
@@ -79,27 +80,6 @@
return nil } -type MultiWriteCloser struct { - writers []io.WriteCloser - multiWriter io.Writer -} - -func (mw *MultiWriteCloser) Write(p []byte) (n int, err error) { - return mw.multiWriter.Write(p) -} - -func (mw *MultiWriteCloser) Close() error { - var lastErr error - for _, w := range mw.writers { - err := w.Close() - if err != nil { - lastErr = err - } - } - - return lastErr -} - func openFileWrite(filename string) (*os.File, error) { return os.OpenFile(filename, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0644) }
@@ -124,7 +104,7 @@
return brotli.NewWriterLevel(f, brotliLevel), nil } -func multiOpenFile(filename string) (*MultiWriteCloser, error) { +func multiOpenFile(filename string) (*multibuf.WriteCloser, error) { r, err := openFileWrite(filename) if err != nil { return nil, err
@@ -138,10 +118,7 @@ if err != nil {
return nil, err } - return &MultiWriteCloser{ - writers: []io.WriteCloser{r, gz, br}, - multiWriter: io.MultiWriter(r, gz, br), - }, nil + return multibuf.NewWriteCloser(r, gz, br), nil } func (f *Files) OpenFileAndVariants(filename string) (io.WriteCloser, error) {