all repos — homestead @ bd77f727dca007014f42269b9dd48b92df28f657

Code for my website

internal/multibuf/writecloser.go (view raw)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package multibuf

import (
	"io"
)

type WriteCloser struct {
	writers []io.WriteCloser
	io.Writer
}

func NewWriteCloser(writers ...io.WriteCloser) *WriteCloser {
	ws := make([]io.Writer, len(writers))
	for i, w := range writers {
		ws[i] = io.Writer(w)
	}

	return &WriteCloser{
		writers: writers,
		Writer:  io.MultiWriter(ws...),
	}
}

func (mw *WriteCloser) Close() error {
	var lastErr error
	for _, w := range mw.writers {
		err := w.Close()
		if err != nil {
			lastErr = err
		}
	}

	return lastErr
}