Use io.WriteCloser instead of *os.File in DockerLocalConn so we can use it with standard writers and pipes
Upstream-commit: e6e9c1cd62bf78e66623950a9f76ef76c6f0f792 Component: engine
This commit is contained in:
committed by
Louis Opter
parent
2c9d6a2303
commit
a479f5cbd8
@@ -33,24 +33,28 @@ type DockerConn interface {
|
||||
}
|
||||
|
||||
type DockerLocalConn struct {
|
||||
file *os.File
|
||||
writer io.WriteCloser
|
||||
savedState *term.State
|
||||
}
|
||||
|
||||
func NewDockerLocalConn(output *os.File) *DockerLocalConn {
|
||||
return &DockerLocalConn{file: output}
|
||||
func NewDockerLocalConn(w io.WriteCloser) *DockerLocalConn {
|
||||
return &DockerLocalConn{
|
||||
writer: w,
|
||||
}
|
||||
}
|
||||
|
||||
func (c *DockerLocalConn) Read(b []byte) (int, error) { return c.file.Read(b) }
|
||||
func (c *DockerLocalConn) Read(b []byte) (int, error) {
|
||||
return 0, fmt.Errorf("DockerLocalConn does not implement Read()")
|
||||
}
|
||||
|
||||
func (c *DockerLocalConn) Write(b []byte) (int, error) { return c.file.Write(b) }
|
||||
func (c *DockerLocalConn) Write(b []byte) (int, error) { return c.writer.Write(b) }
|
||||
|
||||
func (c *DockerLocalConn) Close() error {
|
||||
if c.savedState != nil {
|
||||
RestoreTerminal(c.savedState)
|
||||
c.savedState = nil
|
||||
}
|
||||
return c.file.Close()
|
||||
return c.writer.Close()
|
||||
}
|
||||
|
||||
func (c *DockerLocalConn) CloseWrite() error { return nil }
|
||||
|
||||
Reference in New Issue
Block a user