toaster.bbclass: Simplify parsing of depends.dot

By using a single regular expression, the parsing of the depends.dot
file can be simplified a lot. This should also make it less
susceptible to formatting changes in that file.

(From OE-Core rev: 20684149bb659b34d3bcac8f202cb95d607567c1)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Peter Kjellerstedt 2017-08-29 23:21:04 +02:00 committed by Richard Purdie
parent e56ff20931
commit 986de4b7f0
1 changed files with 13 additions and 15 deletions

View File

@ -270,22 +270,20 @@ python toaster_buildhistory_dump() {
images[target][pname.strip()] = {'size':int(psize)*1024, 'depends' : []} images[target][pname.strip()] = {'size':int(psize)*1024, 'depends' : []}
with open("%s/depends.dot" % installed_img_path, "r") as fin: with open("%s/depends.dot" % installed_img_path, "r") as fin:
p = re.compile(r' -> ') p = re.compile(r'\s*"(?P<name>[^"]+)"\s*->\s*"(?P<dep>[^"]+)"(?P<rec>.*?\[style=dotted\])?')
dot = re.compile(r'.*style=dotted')
for line in fin: for line in fin:
line = line.rstrip(';') m = p.match(line)
linesplit = p.split(line) if not m:
if len(linesplit) == 2: continue
pname = linesplit[0].rstrip('"').strip('"') pname = m.group('name')
dependsname = linesplit[1].split(" ")[0].strip().strip(";").strip('"').rstrip('"') dependsname = m.group('dep')
deptype = "depends" deptype = 'recommends' if m.group('rec') else 'depends'
if dot.match(line):
deptype = "recommends" if not pname in images[target]:
if not pname in images[target]: images[target][pname] = {'size': 0, 'depends' : []}
images[target][pname] = {'size': 0, 'depends' : []} if not dependsname in images[target]:
if not dependsname in images[target]: images[target][dependsname] = {'size': 0, 'depends' : []}
images[target][dependsname] = {'size': 0, 'depends' : []} images[target][pname]['depends'].append((dependsname, deptype))
images[target][pname]['depends'].append((dependsname, deptype))
# files-in-image.txt is only generated if an image file is created, # files-in-image.txt is only generated if an image file is created,
# so the file entries ('syms', 'dirs', 'files') for a target will be # so the file entries ('syms', 'dirs', 'files') for a target will be