podman

Форк
0
/
terminal_sysioctl.go 
36 строк · 676.0 Байт
1
//go:build !windows && !plan9 && !solaris
2
// +build !windows,!plan9,!solaris
3

4
package goterm
5

6
import (
7
	"errors"
8
	"math"
9
	"os"
10

11
	"golang.org/x/sys/unix"
12
)
13

14
func getWinsize() (*unix.Winsize, error) {
15

16
	ws, err := unix.IoctlGetWinsize(int(os.Stdout.Fd()), unix.TIOCGWINSZ)
17
	if err != nil {
18
		return nil, os.NewSyscallError("GetWinsize", err)
19
	}
20

21
	return ws, nil
22
}
23

24
// Height gets console height
25
func Height() int {
26
	ws, err := getWinsize()
27
	if err != nil {
28
		// returns math.MinInt32 if we could not retrieve the height of console window,
29
		// like VSCode debugging console
30
		if errors.Is(err, unix.EOPNOTSUPP) {
31
			return math.MinInt32
32
		}
33
		return -1
34
	}
35
	return int(ws.Row)
36
}
37

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.