From 6fe2f208337db898d370d7a2374b416d998b5b5f Mon Sep 17 00:00:00 2001 From: mathieui Date: Sat, 13 Jan 2018 15:31:10 +0100 Subject: Enforce HOME, TERM, and PATH env vars when running Instead of showing an ugly traceback --- poezio/__main__.py | 8 ++++---- poezio/poezio.py | 14 ++++++++++++++ 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/poezio/__main__.py b/poezio/__main__.py index b0ba98e4..1f46f051 100644 --- a/poezio/__main__.py +++ b/poezio/__main__.py @@ -1,11 +1,11 @@ def run(): - from poezio.poezio import test_curses, main + from poezio.poezio import main, test_curses, test_env - if test_curses(): - main() - else: + if not test_curses() or not test_env(): import sys sys.exit(1) + else: + main() return 0 diff --git a/poezio/poezio.py b/poezio/poezio.py index 51e10d1b..586130c8 100644 --- a/poezio/poezio.py +++ b/poezio/poezio.py @@ -37,6 +37,20 @@ Poezio is currently unable to read your input or draw its interface properly,\ so it will now exit.""") return False +def test_env(): + """ + Check if the environment has the right variables set + """ + unset = set() + for i in ('HOME', 'PATH', 'TERM'): + if not os.environ.get(i): + unset.add(i) + if unset: + variables = ', '.join('$%s' % i for i in unset) + print('ERROR: %s not set' % variables) + return False + return True + def main(): """ -- cgit v1.2.3