mirror of
https://gitcode.com/JianFeeeee/HomeAgent.git
synced 2026-09-21 17:38:10 +00:00
- build.sh supports linux/amd64, linux/arm64, darwin/amd64, darwin/arm64, windows/amd64, and 'all' for matrix build - Components: homed (CGO, Linux/macOS-only), waiter (all platforms), gui - Platform matrix documented in script header - waiter: extract setRawMode into rawmode_linux.go + rawmode_other.go for cross-platform support - Add cmd/gui/node_modules/ and dist/ to .gitignore - Fix .gitignore waiter pattern to not ignore cmd/waiter/ directory
24 lines
567 B
Go
24 lines
567 B
Go
//go:build linux
|
|
|
|
package main
|
|
|
|
import (
|
|
"syscall"
|
|
"unsafe"
|
|
)
|
|
|
|
func setRawMode(fd int) (func(), error) {
|
|
var old termios
|
|
if _, _, err := syscall.Syscall(syscall.SYS_IOCTL, uintptr(fd), TCGETS, uintptr(unsafe.Pointer(&old))); err != 0 {
|
|
return func() {}, err
|
|
}
|
|
new := old
|
|
new.Lflag &^= ICANON | ECHO
|
|
if _, _, err := syscall.Syscall(syscall.SYS_IOCTL, uintptr(fd), TCSETS, uintptr(unsafe.Pointer(&new))); err != 0 {
|
|
return func() {}, err
|
|
}
|
|
return func() {
|
|
syscall.Syscall(syscall.SYS_IOCTL, uintptr(fd), TCSETS, uintptr(unsafe.Pointer(&old)))
|
|
}, nil
|
|
}
|