1234567891011121314151617181920 |
- package term
- import (
- "fmt"
- "github.com/moby/term"
- "io"
- )
- // TerminalSize 获取当前终端宽高,非终端返回err,同时宽高返回0值
- func TerminalSize(w io.Writer) (int, int, error) {
- outFd, isTerminal := term.GetFdInfo(w)
- if !isTerminal {
- return 0, 0, fmt.Errorf("given writer is no terminal")
- }
- winSize, err := term.GetWinsize(outFd)
- if err != nil {
- return 0, 0, err
- }
- return int(winSize.Width), int(winSize.Height), nil
- }
|