diff options
author | mathieui <mathieui@mathieui.net> | 2018-01-13 15:31:10 +0100 |
---|---|---|
committer | mathieui <mathieui@mathieui.net> | 2018-01-13 15:31:10 +0100 |
commit | 6fe2f208337db898d370d7a2374b416d998b5b5f (patch) | |
tree | 2b585c5d4a155b0f592a4ea7972caaecb12f585c | |
parent | 391eb279640ea9250f5d16d44c4691a5b7d4efc1 (diff) | |
download | poezio-6fe2f208337db898d370d7a2374b416d998b5b5f.tar.gz poezio-6fe2f208337db898d370d7a2374b416d998b5b5f.tar.bz2 poezio-6fe2f208337db898d370d7a2374b416d998b5b5f.tar.xz poezio-6fe2f208337db898d370d7a2374b416d998b5b5f.zip |
Enforce HOME, TERM, and PATH env vars when running
Instead of showing an ugly traceback
-rw-r--r-- | poezio/__main__.py | 8 | ||||
-rw-r--r-- | 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(): """ |