Documentation
¶
Index ¶
- type AdoptOpts
- type ScreenCapture
- type Scrollback
- func (s *Scrollback) Close() error
- func (s *Scrollback) Remove() error
- func (s *Scrollback) Stats() (written, maxSize int64, saturated bool)
- func (s *Scrollback) Tail(lines int) ([]byte, error)
- func (s *Scrollback) TailBytes(maxBytes int64) ([]byte, error)
- func (s *Scrollback) Write(data []byte) (int, error)
- type Session
- func (s *Session) Attach(w io.Writer)
- func (s *Session) Close()
- func (s *Session) Detach()
- func (s *Session) DetachWriter(w io.Writer)
- func (s *Session) Done() <-chan struct{}
- func (s *Session) ExitCode() int
- func (s *Session) Exited() bool
- func (s *Session) Fd() uintptr
- func (s *Session) ForceKill() error
- func (s *Session) Kill() error
- func (s *Session) LastOutputAt() time.Time
- func (s *Session) Poke()
- func (s *Session) ProcessPID() int
- func (s *Session) RecentlyAdopted(grace time.Duration) bool
- func (s *Session) Resize(rows, cols uint16) error
- func (s *Session) ScreenPreview() string
- func (s *Session) ScreenSnapshot() ScreenCapture
- func (s *Session) WriteInput(data []byte) error
- func (s *Session) WriteInputAndSubmit(data []byte) error
- type SessionOpts
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ScreenCapture ¶ added in v0.2.0
type Scrollback ¶
type Scrollback struct {
// contains filtered or unexported fields
}
Scrollback is an append-only log file. path is immutable after construction, so Tail/TailBytes read it lock-free via independent file descriptors.
func NewScrollback ¶
func NewScrollback(path string, maxSize int64) (*Scrollback, error)
func (*Scrollback) Close ¶
func (s *Scrollback) Close() error
func (*Scrollback) Remove ¶
func (s *Scrollback) Remove() error
func (*Scrollback) Stats ¶ added in v0.28.0
func (s *Scrollback) Stats() (written, maxSize int64, saturated bool)
type Session ¶
type Session struct {
ID string
Cmd *exec.Cmd
Ptmx *os.File
Scrollback *Scrollback
// contains filtered or unexported fields
}
func AdoptSession ¶
func NewSession ¶
func NewSession(opts SessionOpts) (*Session, error)
func (*Session) DetachWriter ¶
func (*Session) LastOutputAt ¶ added in v0.3.0
func (*Session) Poke ¶ added in v0.16.5
func (s *Session) Poke()
Poke sends SIGWINCH to the session's process group. This interrupts blocked reads and forces TUI frameworks to re-check stdin, ensuring recently written input is consumed. The child process was started with Setsid, so its PID equals its process group ID.
func (*Session) ProcessPID ¶
func (*Session) RecentlyAdopted ¶ added in v0.6.1
RecentlyAdopted returns true if the session was adopted (daemon restart) within the last duration and has not yet received fresh PTY output.
func (*Session) ScreenPreview ¶ added in v0.2.0
func (*Session) ScreenSnapshot ¶ added in v0.2.0
func (s *Session) ScreenSnapshot() ScreenCapture
func (*Session) WriteInput ¶
func (*Session) WriteInputAndSubmit ¶ added in v0.29.0
WriteInputAndSubmit writes text followed by a carriage return, with a brief pause between the two so that TUI frameworks treat them as separate events. The entire operation holds writeMu to prevent interleaving from other sources.