Skip to content

Commit

Permalink
Add terminal size fallback (#5623)
Browse files Browse the repository at this point in the history
  • Loading branch information
yoland68 authored Nov 19, 2024
1 parent b699a15 commit f498d85
Showing 1 changed file with 18 additions and 5 deletions.
23 changes: 18 additions & 5 deletions api_server/services/terminal_service.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
from app.logger import on_flush
import os
import shutil


class TerminalService:
Expand All @@ -10,15 +11,27 @@ def __init__(self, server):
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:
Expand Down

0 comments on commit f498d85

Please sign in to comment.