peco.peco/internal/util/tty_bsd.go
2026-02-18 09:46:54 +09:00

31 lines
572 B
Go

//go:build darwin || freebsd || openbsd || netbsd || dragonfly
package util
import (
"syscall"
"unsafe"
)
// IsTty checks if the given fd is a tty
func IsTty(arg any) bool {
fdsrc, ok := arg.(fder)
if !ok {
return false
}
fd := fdsrc.Fd()
var termios syscall.Termios
_, _, err := syscall.Syscall6(syscall.SYS_IOCTL, fd, uintptr(syscall.TIOCGETA), uintptr(unsafe.Pointer(&termios)), 0, 0, 0)
return err == 0
}
// TtyReady checks if the tty is ready to go
func TtyReady() error {
return nil
}
// TtyTerm restores any state, if necessary
func TtyTerm() {
}