github.com/orange-cloudfoundry/cli@v7.1.0+incompatible/util/clissh/terminal_helper.go (about)

     1  package clissh
     2  
     3  import (
     4  	"io"
     5  
     6  	"github.com/moby/moby/pkg/term"
     7  )
     8  
     9  //go:generate counterfeiter . TerminalHelper
    10  
    11  type TerminalHelper interface {
    12  	GetFdInfo(in interface{}) (fd uintptr, isTerminal bool)
    13  	SetRawTerminal(fd uintptr) (*term.State, error)
    14  	RestoreTerminal(fd uintptr, state *term.State) error
    15  	GetWinsize(fd uintptr) (*term.Winsize, error)
    16  	StdStreams() (stdin io.ReadCloser, stdout io.Writer, stderr io.Writer)
    17  }
    18  
    19  type terminalHelper struct{}
    20  
    21  func DefaultTerminalHelper() terminalHelper {
    22  	return terminalHelper{}
    23  }
    24  
    25  func (terminalHelper) GetFdInfo(in interface{}) (uintptr, bool) {
    26  	return term.GetFdInfo(in)
    27  }
    28  
    29  func (terminalHelper) GetWinsize(fd uintptr) (*term.Winsize, error) {
    30  	return term.GetWinsize(fd)
    31  }
    32  
    33  func (terminalHelper) RestoreTerminal(fd uintptr, state *term.State) error {
    34  	return term.RestoreTerminal(fd, state)
    35  }
    36  
    37  func (terminalHelper) SetRawTerminal(fd uintptr) (*term.State, error) {
    38  	return term.SetRawTerminal(fd)
    39  }
    40  
    41  func (terminalHelper) StdStreams() (io.ReadCloser, io.Writer, io.Writer) {
    42  	return term.StdStreams()
    43  }