Re-implement: stdout can be directed now

This commit is contained in:
HAYAMA_Kaoru
2024-12-01 22:37:31 +09:00
parent a0c1c2ae9a
commit bce5233fc4
+12 -4
View File
@@ -25,8 +25,12 @@ func (T *Term) Close() {
func NewTerm() (*Term, error) { func NewTerm() (*Term, error) {
T := &Term{} T := &Term{}
disableStdout, err := virtualterminal.EnableStdout() isTerm := term.IsTerminal(int(os.Stdout.Fd()))
if err == nil { if isTerm {
disableStdout, err := virtualterminal.EnableStdout()
if err != nil {
return nil, err
}
T.closers = append(T.closers, disableStdout) T.closers = append(T.closers, disableStdout)
} }
@@ -44,8 +48,12 @@ func NewTerm() (*Term, error) {
} }
T.closers = append(T.closers, func() { T.Pty.Close() }) T.closers = append(T.closers, func() { T.Pty.Close() })
width, height, err := term.GetSize(int(os.Stdout.Fd())) if isTerm {
if err == nil { width, height, err := term.GetSize(int(os.Stdout.Fd()))
if err != nil {
T.Close()
return nil, err
}
T.Pty.Resize(width, height) T.Pty.Resize(width, height)
} }