Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 12 additions & 2 deletions src/cautom/cli.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,13 @@
import random
import time
import sys
import termios
import platform
try:
import termios # POSIX-only
_HAS_TERMIOS = True
except ImportError:
termios = None
_HAS_TERMIOS = False
from rich.live import Live
from rich.text import Text
from rich.panel import Panel
Expand All @@ -25,17 +31,21 @@

def save_terminal_settings():
global _saved_settings
if not _HAS_TERMIOS:
return None
fd = sys.stdin.fileno()
_saved_settings = termios.tcgetattr(fd)
return _saved_settings

def restore_terminal_settings():
global _saved_settings
if _saved_settings:
if _HAS_TERMIOS and _saved_settings:
fd = sys.stdin.fileno()
termios.tcsetattr(fd, termios.TCSADRAIN, _saved_settings)

def disable_echo():
if not _HAS_TERMIOS:
return
fd = sys.stdin.fileno()
new_attr = termios.tcgetattr(fd)
new_attr[3] = new_attr[3] & ~termios.ECHO
Expand Down