1
0

cursesex.py 670 B

123456789101112131415161718192021
  1. import os
  2. import sys
  3. import locale
  4. def tty_wrapper(function, *args, **kwargs):
  5. stdin_fd = os.dup(sys.stdin.fileno())
  6. stdout_fd = os.dup(sys.stdout.fileno())
  7. # set stdin to tty
  8. tty_in = open('/dev/tty', 'r')
  9. os.dup2(tty_in.fileno(), sys.stdin.fileno())
  10. # set stdout to tty
  11. tty_out = open('/dev/tty', 'w')
  12. os.dup2(tty_out.fileno(), sys.stdout.fileno())
  13. # os.system('ls -l /proc/self/fd/')
  14. locale.setlocale(locale.LC_ALL, '')
  15. import curses
  16. result = curses.wrapper(function, *args, **kwargs)
  17. # reset stdin and stdout
  18. os.dup2(stdin_fd, sys.stdin.fileno())
  19. os.dup2(stdout_fd, sys.stdout.fileno())
  20. return result