package namespaces | |
import ( | |
"io" | |
"os" | |
"os/exec" | |
) | |
type Terminal interface { | |
io.Closer | |
SetMaster(*os.File) | |
Attach(*exec.Cmd) error | |
Resize(h, w int) error | |
} | |
func NewTerminal(stdin io.Reader, stdout, stderr io.Writer, tty bool) Terminal { | |
if tty { | |
return &TtyTerminal{ | |
stdin: stdin, | |
stdout: stdout, | |
stderr: stderr, | |
} | |
} | |
return &StdTerminal{ | |
stdin: stdin, | |
stdout: stdout, | |
stderr: stderr, | |
} | |
} |