* [yocto-autobuilder][PATCH] ScrapeTargets.py: improve target search algorithm
@ 2017-07-01 22:05 Stephano Cetola
2017-07-03 13:48 ` Joshua Lock
0 siblings, 1 reply; 2+ messages in thread
From: Stephano Cetola @ 2017-07-01 22:05 UTC (permalink / raw)
To: yocto
When scraping the build targets from refkit-ci.inc, grep would only
return the first line of the search result. By replacing grep with
awk, we are now searching for multi-line variables, and should now
scrape build targets even if they have line breaks between them.
Signed-off-by: Stephano Cetola <stephano.cetola@linux.intel.com>
---
.../site-packages/autobuilder/buildsteps/ScrapeTargets.py | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/lib/python2.7/site-packages/autobuilder/buildsteps/ScrapeTargets.py b/lib/python2.7/site-packages/autobuilder/buildsteps/ScrapeTargets.py
index 80153fe85..c5a2f8d6d 100644
--- a/lib/python2.7/site-packages/autobuilder/buildsteps/ScrapeTargets.py
+++ b/lib/python2.7/site-packages/autobuilder/buildsteps/ScrapeTargets.py
@@ -41,7 +41,9 @@ 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)
- self.command = "cat " + src + " | grep " + self.targetsvar
+ # find targetsvar=", skip a line, then return lines up to a quote
+ self.command = ["awk",
+ '/%s="/{flag=1;next}/"/{flag=0}flag' % self.targetsvar, src]
ShellCommand.start(self)
def commandComplete(self, cmd):
@@ -49,10 +51,7 @@ class ScrapeTargets(ShellCommand):
return
result = cmd.logs['stdio'].getText()
- targets = result.replace(self.targetsvar, "")
- targets = targets.strip()
- targets = targets.replace('=', '')
- targets = targets.strip('"')
+ targets = result.strip()
self.setProperty("scraped_targets",
targets,
'Targets "%s" scraped from %s' % (targets,
--
2.13.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [yocto-autobuilder][PATCH] ScrapeTargets.py: improve target search algorithm
2017-07-01 22:05 [yocto-autobuilder][PATCH] ScrapeTargets.py: improve target search algorithm Stephano Cetola
@ 2017-07-03 13:48 ` Joshua Lock
0 siblings, 0 replies; 2+ messages in thread
From: Joshua Lock @ 2017-07-03 13:48 UTC (permalink / raw)
To: Stephano Cetola, yocto
On Sat, 2017-07-01 at 15:05 -0700, Stephano Cetola wrote:
> When scraping the build targets from refkit-ci.inc, grep would only
> return the first line of the search result. By replacing grep with
> awk, we are now searching for multi-line variables, and should now
> scrape build targets even if they have line breaks between them.
>
> Signed-off-by: Stephano Cetola <stephano.cetola@linux.intel.com>
> ---
> .../site-packages/autobuilder/buildsteps/ScrapeTargets.py | 9
> ++++-----
> 1 file changed, 4 insertions(+), 5 deletions(-)
>
> diff --git a/lib/python2.7/site-
> packages/autobuilder/buildsteps/ScrapeTargets.py
> b/lib/python2.7/site-packages/autobuilder/buildsteps/ScrapeTargets.py
> index 80153fe85..c5a2f8d6d 100644
> --- a/lib/python2.7/site-
> packages/autobuilder/buildsteps/ScrapeTargets.py
> +++ b/lib/python2.7/site-
> packages/autobuilder/buildsteps/ScrapeTargets.py
> @@ -41,7 +41,9 @@ 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)
> - self.command = "cat " + src + " | grep " + self.targetsvar
> + # find targetsvar=", skip a line, then return lines up to a
> quote
What if the first line includes a desired target? Can we change this
not to skip the first line?
Does including the line continuation character in the property cause
BuildImages to choke later?
> + self.command = ["awk",
> + '/%s="/{flag=1;next}/"/{flag=0}flag' %
> self.targetsvar, src]
> ShellCommand.start(self)
>
> def commandComplete(self, cmd):
> @@ -49,10 +51,7 @@ class ScrapeTargets(ShellCommand):
> return
>
> result = cmd.logs['stdio'].getText()
> - targets = result.replace(self.targetsvar, "")
> - targets = targets.strip()
> - targets = targets.replace('=', '')
> - targets = targets.strip('"')
> + targets = result.strip()
> self.setProperty("scraped_targets",
> targets,
> 'Targets "%s" scraped from %s' % (targets,
> --
> 2.13.1
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2017-07-03 13:48 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-07-01 22:05 [yocto-autobuilder][PATCH] ScrapeTargets.py: improve target search algorithm Stephano Cetola
2017-07-03 13:48 ` Joshua Lock
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.