[OE-core] [PATCH] devtool: execute associated functions while preparing the source tree
Christopher Larson
clarson at kergoth.com
Tue Nov 29 06:04:40 UTC 2016
On Mon, Nov 28, 2016 at 7:59 PM, Jiajie Hu <jiajie.hu at intel.com> wrote:
> Execute prefuncs and postfuncs associated with the task while preparing
> the source tree. If any changes are made to the source tree by these
> prefuncs or postfuncs, a separate commit will be created so that the
> changes won't get incorporated with other patches.
>
> Signed-off-by: Jiajie Hu <jiajie.hu at intel.com>
> ---
> scripts/lib/devtool/standard.py | 23 ++++++++++++++++++++---
> 1 file changed, 20 insertions(+), 3 deletions(-)
>
> diff --git a/scripts/lib/devtool/standard.py b/scripts/lib/devtool/
> standard.py
> index e4d2a57..8302112 100644
> --- a/scripts/lib/devtool/standard.py
> +++ b/scripts/lib/devtool/standard.py
> @@ -424,8 +424,7 @@ class BbTaskExecutor(object):
> self.rdata = rdata
> self.executed = []
>
> - def exec_func(self, func, report):
> - """Run bitbake task function"""
> + def _exec_func(self, func, report):
> if not func in self.executed:
> deps = self.rdata.getVarFlag(func, 'deps', False)
> if deps:
> @@ -435,12 +434,25 @@ class BbTaskExecutor(object):
> logger.info('Executing %s...' % func)
> fn = self.rdata.getVar('FILE', True)
> localdata = bb.build._task_data(fn, func, self.rdata)
> + prefuncs = localdata.getVarFlag(func, 'prefuncs', True)
> + postfuncs = localdata.getVarFlag(func, 'postfuncs', True)
> try:
> + for prefunc in (prefuncs or '').split():
> + bb.build.exec_func(prefunc, localdata)
> + yield prefunc
> bb.build.exec_func(func, localdata)
> + for postfunc in (postfuncs or '').split():
> + bb.build.exec_func(postfunc, localdata)
> + yield postfunc
> except bb.build.FuncFailed as e:
> raise DevtoolError(str(e))
> self.executed.append(func)
>
> + def exec_func(self, func, report):
> + """Run bitbake task function"""
> + for step in self._exec_func(func, report):
> + pass
> +
>
> class PatchTaskExecutor(BbTaskExecutor):
> def __init__(self, rdata):
> @@ -462,7 +474,12 @@ class PatchTaskExecutor(BbTaskExecutor):
> else:
> os.rmdir(patchdir)
>
> - super(PatchTaskExecutor, self).exec_func(func, report)
> + for step in super(PatchTaskExecutor, self)._exec_func(func,
> report):
> + if self.check_git and os.path.exists(srcsubdir):
> + stdout, _ = bb.process.run('git status --porcelain',
> cwd=srcsubdir)
> + if stdout:
> + bb.process.run('git add .; git %s commit -a -m
> "Committing changes from %s\n\n%s"' % (' '.join(self.useroptions), step,
> GitApplyTree.ignore_commit_prefix + ' - from %s' % step), cwd=srcsubdir)
>
This will do the commit after the first postfunc is done, so won’t the
changes from the main func and the first postfunc both be included in that
commit?
--
Christopher Larson
clarson at kergoth dot com
Founder - BitBake, OpenEmbedded, OpenZaurus
Maintainer - Tslib
Senior Software Engineer, Mentor Graphics
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20161128/99e6a2e4/attachment-0002.html>
More information about the Openembedded-core
mailing list