Add terminal size fallback (#5623)

This commit is contained in:
Yoland Yan 2024-11-19 00:34:20 -08:00 committed by GitHub
parent b699a15062
commit f498d855ba
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 18 additions and 5 deletions

View File

@ -1,5 +1,6 @@
from app.logger import on_flush
import os
import shutil
class TerminalService:
@ -10,15 +11,27 @@ class TerminalService:
self.subscriptions = set()
on_flush(self.send_messages)
def get_terminal_size(self):
try:
size = os.get_terminal_size()
return (size.columns, size.lines)
except OSError:
try:
size = shutil.get_terminal_size()
return (size.columns, size.lines)
except OSError:
return (80, 24) # fallback to 80x24
def update_size(self):
sz = os.get_terminal_size()
columns, lines = self.get_terminal_size()
changed = False
if sz.columns != self.cols:
self.cols = sz.columns
if columns != self.cols:
self.cols = columns
changed = True
if sz.lines != self.rows:
self.rows = sz.lines
if lines != self.rows:
self.rows = lines
changed = True
if changed: