allow combining os.Stdin and os.Stdout as an io.ReadWriteCloser

This commit is contained in:
Jason Lunz 2021-12-13 15:18:32 -07:00
parent f588aec7f3
commit 9416056da1
No known key found for this signature in database
GPG key ID: 88F9FD38589448E9

View file

@ -277,3 +277,32 @@ func (fl *fileLogger) Name() string {
func (fl *fileLogger) Close() error {
return fl.f.Close()
}
type combinedReadWriteCloser struct {
reader *os.File
writer *os.File
}
func newCombinedReadWriteCloser(reader *os.File, writer *os.File) (crwc *combinedReadWriteCloser) {
return &combinedReadWriteCloser{
reader: reader,
writer: writer,
}
}
func (crwc *combinedReadWriteCloser) Read(p []byte) (n int, err error) {
return crwc.reader.Read(p)
}
func (crwc *combinedReadWriteCloser) Write(p []byte) (n int, err error) {
return crwc.writer.Write(p)
}
func (crwc *combinedReadWriteCloser) Close() error {
werr := crwc.writer.Close()
rerr := crwc.reader.Close()
if werr != nil {
return werr
}
return rerr
}