Arquivos
2017-05-14 10:33:33 -07:00

71 linhas
1.6 KiB
Python

import subprocess
import os
import sys
from . import g, content, config, util
mswin = os.name == "nt"
def update(fill_blank=True):
""" Display content, show message, blank screen."""
clear()
if isinstance(g.content, content.PaginatedContent):
util.xprint(g.content.getPage(g.current_page))
g.rprompt = content.page_msg(g.current_page)
elif g.content:
util.xprint(g.content)
g.content = False
if g.message or g.rprompt:
out = g.message or ''
blanks = util.getxy().width - len(out) - len(g.rprompt or '')
out += ' ' * blanks + (g.rprompt or '')
util.xprint(out)
elif fill_blank:
util.xprint("")
g.message = g.rprompt = False
def clear():
"""Clear all text from screen."""
if g.no_clear_screen:
util.xprint('--\n')
else:
util.xprint('\n' * 200)
def reset_terminal():
""" Reset terminal control character and modes for non Win OS's. """
if not mswin:
subprocess.call(["tset", "-c"])
def writestatus(text, mute=False):
""" Update status line. """
if not mute and config.SHOW_STATUS.get:
_writeline(text)
def _writeline(text):
""" Print text on same line. """
width = util.getxy().width
spaces = width - len(text) - 1
if mswin:
# Avoids creating new line every time it is run
# TODO: Figure out why this is needed
spaces =- 1
text = text[:width - 3]
sys.stdout.write(" " + text + (" " * spaces) + "\r")
sys.stdout.flush()
def msgexit(msg, code=0):
""" Print a message and exit. """
util.xprint(msg)
sys.exit(code)