Patchwork [03/12] oe.path: sync up with current OE

login
register
mail settings
Submitter Christopher Larson
Date March 17, 2011, 4:19 p.m.
Message ID <453417063679cb59c426f1d9191719c9445883e3.1300378596.git.chris_larson@mentor.com>
Download mbox | patch
Permalink /patch/1557/
State New, archived
Headers show

Comments

Christopher Larson - March 17, 2011, 4:19 p.m.
From: Chris Larson <chris_larson@mentor.com>

Signed-off-by: Chris Larson <chris_larson@mentor.com>
---
 meta/lib/oe/path.py |   21 ++++++++++++++-------
 1 files changed, 14 insertions(+), 7 deletions(-)

Patch

diff --git a/meta/lib/oe/path.py b/meta/lib/oe/path.py
index 08ddbf2..8eaa3c5 100644
--- a/meta/lib/oe/path.py
+++ b/meta/lib/oe/path.py
@@ -1,9 +1,12 @@ 
+import bb
+import errno
+import glob
+import os
 import shutil
 import subprocess
 
 def join(*paths):
     """Like os.path.join but doesn't treat absolute RHS specially"""
-    import os.path
     return os.path.normpath("/".join(paths))
 
 def relative(src, dest):
@@ -18,7 +21,6 @@  def relative(src, dest):
     >>> relative("/tmp", "/tmp/foo/bar")
     foo/bar
     """
-    import os.path
 
     if hasattr(os.path, "relpath"):
         return os.path.relpath(dest, src)
@@ -57,21 +59,19 @@  def copytree(src, dst):
     check_output(cmd, shell=True, stderr=subprocess.STDOUT)
 
 
-def remove(path):
+def remove(path, recurse=True):
     """Equivalent to rm -f or rm -rf"""
-    import os, errno, shutil, glob
     for name in glob.glob(path):
         try:
             os.unlink(name)
         except OSError, exc:
-            if exc.errno == errno.EISDIR:
-                shutil.rmtree(path)
+            if recurse and exc.errno == errno.EISDIR:
+                shutil.rmtree(name)
             elif exc.errno != errno.ENOENT:
                 raise
 
 def symlink(source, destination, force=False):
     """Create a symbolic link"""
-    import os, errno
     try:
         if force:
             remove(destination)
@@ -121,3 +121,10 @@  def check_output(*popenargs, **kwargs):
         raise CalledProcessError(retcode, cmd, output=output)
     return output
 
+def find(dir, **walkoptions):
+    """ Given a directory, recurses into that directory,
+    returning all files as absolute paths. """
+
+    for root, dirs, files in os.walk(dir, **walkoptions):
+        for file in files:
+            yield os.path.join(root, file)