From bce5233fc4c60a458f04b313470a0064b1a58502 Mon Sep 17 00:00:00 2001 From: HAYAMA_Kaoru Date: Sun, 1 Dec 2024 22:36:49 +0900 Subject: [PATCH] Re-implement: stdout can be directed now --- term.go | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/term.go b/term.go index 12a1f50..e580d94 100644 --- a/term.go +++ b/term.go @@ -25,8 +25,12 @@ func (T *Term) Close() { func NewTerm() (*Term, error) { T := &Term{} - disableStdout, err := virtualterminal.EnableStdout() - if err == nil { + isTerm := term.IsTerminal(int(os.Stdout.Fd())) + if isTerm { + disableStdout, err := virtualterminal.EnableStdout() + if err != nil { + return nil, err + } T.closers = append(T.closers, disableStdout) } @@ -44,8 +48,12 @@ func NewTerm() (*Term, error) { } T.closers = append(T.closers, func() { T.Pty.Close() }) - width, height, err := term.GetSize(int(os.Stdout.Fd())) - if err == nil { + if isTerm { + width, height, err := term.GetSize(int(os.Stdout.Fd())) + if err != nil { + T.Close() + return nil, err + } T.Pty.Resize(width, height) }