Using awk, sed, or grep to pull a shell variable out of stdio proved complex. Instead, simply cat the entire "inc" file to stdio and use python/regex to find the variable.
Signed-off-by: Stephano Cetola <[email protected]> --- .../autobuilder/buildsteps/ScrapeTargets.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/lib/python2.7/site-packages/autobuilder/buildsteps/ScrapeTargets.py b/lib/python2.7/site-packages/autobuilder/buildsteps/ScrapeTargets.py index 07e2fdcf4..8844c6366 100644 --- a/lib/python2.7/site-packages/autobuilder/buildsteps/ScrapeTargets.py +++ b/lib/python2.7/site-packages/autobuilder/buildsteps/ScrapeTargets.py @@ -15,6 +15,7 @@ from buildbot.steps.shell import ShellCommand from buildbot.status.results import SUCCESS, FAILURE from autobuilder.config import * import os +import re class ScrapeTargets(ShellCommand): haltOnFailure = False @@ -41,9 +42,7 @@ class ScrapeTargets(ShellCommand): workerdir = os.path.join(os.path.join(YOCTO_ABBASE, "yocto-worker")) buildername = self.getProperty("buildername") src = os.path.join(workerdir, buildername, "build", self.source) - # find targetsvar then return lines up to a quote - self.command = ["awk", - '/%s/{flag=1;print;next}/"/{flag=0}flag' % self.targetsvar, src] + self.command = ["cat", src] ShellCommand.start(self) def commandComplete(self, cmd): @@ -51,10 +50,14 @@ class ScrapeTargets(ShellCommand): return result = cmd.logs['stdio'].getText() - targets = result.strip() - targets = targets.replace('%s="' % self.targetsvar, '') - targets = targets.replace('\\', '') - targets = targets.replace('\n', '') + start = result.find(self.targetsvar) + len(self.targetsvar) + res = re.search('"([^"]*)"', result[start:]) + targets = "" + if res: + targets = res.group() + targets = targets.replace('%s="' % self.targetsvar, '') + targets = targets.replace('\\', '') + targets = targets.replace('\n', '') self.setProperty("scraped_targets", targets, 'Targets "%s" scraped from %s' % (targets, -- 2.13.2 -- _______________________________________________ yocto mailing list [email protected] https://lists.yoctoproject.org/listinfo/yocto
