summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--meta/lib/oe/path.py21
1 files changed, 14 insertions, 7 deletions
diff --git a/meta/lib/oe/path.py b/meta/lib/oe/path.py
index 08ddbf22aa..8eaa3c5da4 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)