On Mon, Nov 28, 2016 at 7:59 PM, Jiajie Hu <jiajie...@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...@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
-- _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core