winsize_others.go 479 B

1234567891011121314151617181920212223242526
  1. //go:build linux || darwin
  2. package main
  3. import (
  4. "os"
  5. "os/signal"
  6. "syscall"
  7. "git.wecise.com/wecise/common/matrix/logger"
  8. "github.com/creack/pty"
  9. )
  10. func HandlePTYSize(ptmx *os.File) chan os.Signal {
  11. ch := make(chan os.Signal, 1)
  12. signal.Notify(ch, syscall.SIGWINCH)
  13. go func() {
  14. for range ch {
  15. if err := pty.InheritSize(os.Stdin, ptmx); err != nil {
  16. logger.Error("error resizing pty:", err)
  17. }
  18. }
  19. }()
  20. ch <- syscall.SIGWINCH // Initial resize.
  21. return ch
  22. }