diff options
author | Richard Purdie <rpurdie@linux.intel.com> | 2008-09-30 20:01:46 +0000 |
---|---|---|
committer | Richard Purdie <rpurdie@linux.intel.com> | 2008-09-30 20:01:46 +0000 |
commit | af88d22ee676fde9af6477eb75dde9ca38e8d17e (patch) | |
tree | 2f16d16ea7da0fe822197cb59347ca3084ebfa76 /lib/bb/utils.py | |
parent | 301f25d11610f2394dd4d977dd0de533ceb345b9 (diff) | |
download | bitbake-af88d22ee676fde9af6477eb75dde9ca38e8d17e.tar.gz |
utils.py: Move prunedir function to utils.py and add explode_dep_versions function
Diffstat (limited to 'lib/bb/utils.py')
-rw-r--r-- | lib/bb/utils.py | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/lib/bb/utils.py b/lib/bb/utils.py index 17e22e389..0a0c9ada3 100644 --- a/lib/bb/utils.py +++ b/lib/bb/utils.py @@ -96,7 +96,34 @@ def explode_deps(s): #r[-1] += ' ' + ' '.join(j) return r +def explode_dep_versions(s): + """ + Take an RDEPENDS style string of format: + "DEPEND1 (optional version) DEPEND2 (optional version) ..." + and return a dictonary of dependencies and versions. + """ + r = {} + l = s.split() + lastdep = None + lastver = "" + inversion = False + for i in l: + if i[0] == '(': + inversion = True + lastver = i[1:] or "" + #j = [] + elif inversion and i.endswith(')'): + inversion = False + lastver = lastver + " " + (i[:-1] or "") + r[lastdep] = lastver + elif not inversion: + r[i] = None + lastdep = i + lastver = "" + elif inversion: + lastver = lastver + " " + i + return r def _print_trace(body, line): """ @@ -268,3 +295,13 @@ def sha256_file(filename): for line in open(filename): s.update(line) return s.hexdigest() + +def prunedir(topdir): + # Delete everything reachable from the directory named in 'topdir'. + # CAUTION: This is dangerous! + for root, dirs, files in os.walk(topdir, topdown=False): + for name in files: + os.remove(os.path.join(root, name)) + for name in dirs: + os.rmdir(os.path.join(root, name)) + os.rmdir(topdir) |