[rtems-tools commit] rtemstoolkit/path : Add listdir function

Chris Johns chrisj at rtems.org
Tue May 21 05:56:10 UTC 2019


Module:    rtems-tools
Branch:    master
Commit:    9f197dea76995fc2916884e341fb385775e39d2c
Changeset: http://git.rtems.org/rtems-tools/commit/?id=9f197dea76995fc2916884e341fb385775e39d2c

Author:    Vijay Kumar Banerjee <vijaykumar9597 at gmail.com>
Date:      Mon May 20 17:11:51 2019 +0530

rtemstoolkit/path : Add listdir function

---

 rtemstoolkit/path.py  | 29 ++++++++++++++++++++++++++++-
 tester/rt/coverage.py |  4 ++--
 2 files changed, 30 insertions(+), 3 deletions(-)

diff --git a/rtemstoolkit/path.py b/rtemstoolkit/path.py
index 2b569ae..6b63c8a 100644
--- a/rtemstoolkit/path.py
+++ b/rtemstoolkit/path.py
@@ -157,6 +157,33 @@ def expanduser(path):
     path = os.path.expanduser(path)
     return shell(path)
 
+def listdir(path):
+    path = host(path)
+    files = []
+    if not exists(path):
+        raise error.general('path does not exist : %s' % (path))
+    elif not isdir(path):
+        raise error.general('path is not a directory: %s' % (path))
+    else:
+        if windows:
+            try:
+                files = os.listdir(host(path))
+            except IOError:
+                raise error.general('Could not list files: %s' % (path))
+            except OSError as e:
+                raise error.general('Could not list files: %s: %s' % (path, str(e)))
+            except WindowsError as e:
+                raise error.general('Could not list files: %s: %s' % (path, str(e)))
+        else:
+            try:
+                files = os.listdir(host(path))
+            except IOError:
+                raise error.general('Could not list files: %s' % (path))
+            except OSError as e:
+                raise error.general('Could not list files: %s: %s' % (path, str(e)))
+
+    return files
+
 def collect_files(path_):
     #
     # Convert to shell paths and return shell paths.
@@ -184,7 +211,7 @@ def copy_tree(src, dst):
     hdst = host(dst)
 
     if os.path.exists(src) and os.path.isdir(src):
-        names = os.listdir(src)
+        names = listdir(src)
     else:
         names = [basename(src)]
         src = dirname(src)
diff --git a/tester/rt/coverage.py b/tester/rt/coverage.py
index bdf3c5f..31e2cd7 100644
--- a/tester/rt/coverage.py
+++ b/tester/rt/coverage.py
@@ -215,7 +215,7 @@ class report_gen_html:
         for symbol_set in self.symbol_sets:
              symbol_set_dir = path.join(self.build_dir,
                                         self.bsp + '-coverage', symbol_set)
-             html_files = os.listdir(symbol_set_dir)
+             html_files = path.listdir(symbol_set_dir)
              for html_file in html_files:
                  html_file = path.join(symbol_set_dir, html_file)
                  if path.exists(html_file) and 'html' in html_file:
@@ -291,7 +291,7 @@ class symbol_parser(object):
             config.add_section('symbol-sets')
             config.set('symbol-sets', 'sets', sset)
             config.add_section(sset)
-            object_files = [o for o in os.listdir(self.symbol_sets[sset]) if o[-1] == 'o']
+            object_files = [o for o in path.listdir(self.symbol_sets[sset]) if o[-1] == 'o']
             object_paths = []
             for o in object_files:
                 object_paths.append(path.join(self.symbol_sets[sset], o))



More information about the vc mailing list