summaryrefslogtreecommitdiffstats
path: root/bitbake-dev/lib/bb/utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake-dev/lib/bb/utils.py')
-rw-r--r--bitbake-dev/lib/bb/utils.py37
1 files changed, 37 insertions, 0 deletions
diff --git a/bitbake-dev/lib/bb/utils.py b/bitbake-dev/lib/bb/utils.py
index 17e22e389e..0a0c9ada34 100644
--- a/bitbake-dev/lib/bb/utils.py
+++ b/bitbake-dev/lib/bb/utils.py
@@ -96,7 +96,34 @@ def explode_deps(s):
96 #r[-1] += ' ' + ' '.join(j) 96 #r[-1] += ' ' + ' '.join(j)
97 return r 97 return r
98 98
99def explode_dep_versions(s):
100 """
101 Take an RDEPENDS style string of format:
102 "DEPEND1 (optional version) DEPEND2 (optional version) ..."
103 and return a dictonary of dependencies and versions.
104 """
105 r = {}
106 l = s.split()
107 lastdep = None
108 lastver = ""
109 inversion = False
110 for i in l:
111 if i[0] == '(':
112 inversion = True
113 lastver = i[1:] or ""
114 #j = []
115 elif inversion and i.endswith(')'):
116 inversion = False
117 lastver = lastver + " " + (i[:-1] or "")
118 r[lastdep] = lastver
119 elif not inversion:
120 r[i] = None
121 lastdep = i
122 lastver = ""
123 elif inversion:
124 lastver = lastver + " " + i
99 125
126 return r
100 127
101def _print_trace(body, line): 128def _print_trace(body, line):
102 """ 129 """
@@ -268,3 +295,13 @@ def sha256_file(filename):
268 for line in open(filename): 295 for line in open(filename):
269 s.update(line) 296 s.update(line)
270 return s.hexdigest() 297 return s.hexdigest()
298
299def prunedir(topdir):
300 # Delete everything reachable from the directory named in 'topdir'.
301 # CAUTION: This is dangerous!
302 for root, dirs, files in os.walk(topdir, topdown=False):
303 for name in files:
304 os.remove(os.path.join(root, name))
305 for name in dirs:
306 os.rmdir(os.path.join(root, name))
307 os.rmdir(topdir)