From 784f518df465d2078af58453ea3e96febc37bc1b Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Mon, 2 Dec 2019 09:45:10 +0100 Subject: Be more resilient against $PATH errors Close #3781. --- source-builder/sb/check.py | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) (limited to 'source-builder') diff --git a/source-builder/sb/check.py b/source-builder/sb/check.py index 9e4e953..be808ea 100644 --- a/source-builder/sb/check.py +++ b/source-builder/sb/check.py @@ -104,20 +104,24 @@ def path_check(opts, silent = False): if 'PATH' in os.environ: paths = os.environ['PATH'].split(os.pathsep) for p in paths: - if len(p.strip()) == 0: + try: + if len(p.strip()) == 0: + if not silent: + log.notice('error: environment PATH contains an empty path') + return False + elif not options.host_windows and (p.strip() == '.' or p.strip() == '..'): + if not silent: + log.notice('error: environment PATH invalid path: %s' % (p)) + return False + elif not path.exists(p): + if not silent and opts.warn_all(): + log.notice('warning: environment PATH not found: %s' % (p)) + elif not path.isdir(p): + if not silent and opts.warn_all(): + log.notice('warning: environment PATH not a directory: %s' % (p)) + except Exception as e: if not silent: - log.notice('error: environment PATH contains an empty path') - return False - elif not options.host_windows and (p.strip() == '.' or p.strip() == '..'): - if not silent: - log.notice('error: environment PATH invalid path: %s' % (p)) - return False - elif not path.exists(p): - if not silent and opts.warn_all(): - log.notice('warning: environment PATH not found: %s' % (p)) - elif not path.isdir(p): - if not silent and opts.warn_all(): - log.notice('warning: environment PATH not a directory: %s' % (p)) + log.notice('warning: environment PATH suspicious path: %s' % (e)) return True -- cgit v1.2.3