From c9d1e20ab75fa21606c38f7f9d88d879117b3ce9 Mon Sep 17 00:00:00 2001 From: Chris Larson Date: Wed, 9 Feb 2011 06:55:16 -0700 Subject: oe.path: sync up with current OE (From OE-Core rev: 1958b303f98b8db5bab00344823bbb8e086b8dba) Signed-off-by: Chris Larson Signed-off-by: Richard Purdie --- meta/lib/oe/path.py | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) (limited to 'meta/lib') 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) -- cgit v1.2.3-54-g00ecf