Fall back to tput when terminal size information is missing

This commit is contained in:
Anthony Sottile 2016-02-20 22:15:23 -08:00
parent d699f64de8
commit a9498d28a7

View file

@ -1,5 +1,7 @@
from __future__ import unicode_literals from __future__ import unicode_literals
import os
import subprocess
import sys import sys
from backports.shutil_get_terminal_size import get_terminal_size from backports.shutil_get_terminal_size import get_terminal_size
@ -7,9 +9,21 @@ from backports.shutil_get_terminal_size import get_terminal_size
from pre_commit import color from pre_commit import color
from pre_commit import five from pre_commit import five
# TODO: smell: import side-effects
# TODO: https://github.com/chrippa/backports.shutil_get_terminal_size/issues/4 def _get_cols_from_tput(): # pragma: no cover (fallback)
COLS = get_terminal_size().columns or 80 if not os.environ.get('TERM'):
return 80
else:
return int(
subprocess.Popen(
('tput', 'cols'), stdout=subprocess.PIPE,
).communicate()[0] or
# Default in the case of no terminal
80
)
COLS = get_terminal_size((0, 0)).columns or _get_cols_from_tput()
def get_hook_message( def get_hook_message(