[rtems-source-builder commit] Be more resilient against $PATH errors

Sebastian Huber sebh at rtems.org
Tue Dec 3 05:53:05 UTC 2019


Module:    rtems-source-builder
Branch:    master
Commit:    784f518df465d2078af58453ea3e96febc37bc1b
Changeset: http://git.rtems.org/rtems-source-builder/commit/?id=784f518df465d2078af58453ea3e96febc37bc1b

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Mon Dec  2 09:45:10 2019 +0100

Be more resilient against $PATH errors

Close #3781.

---

 source-builder/sb/check.py | 30 +++++++++++++++++-------------
 1 file changed, 17 insertions(+), 13 deletions(-)

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
 
 



More information about the vc mailing list