The tinoil is not needed in cases like the layer is already up-to-date or the layer is invalid, so only init it when needed.
This can save about 1min when run "update.py -b <branch>" (124 layers). Signed-off-by: Robert Yang <[email protected]> --- layerindex/update_layer.py | 45 +++++++++++++++++++++++---------------------- 1 file changed, 23 insertions(+), 22 deletions(-) diff --git a/layerindex/update_layer.py b/layerindex/update_layer.py index 329c30c..c012404 100644 --- a/layerindex/update_layer.py +++ b/layerindex/update_layer.py @@ -244,22 +244,8 @@ def main(options, queue): logger.info("Skipping update of layer %s - branch %s doesn't exist" % (layer.name, branchdesc)) return (1, '') - try: - (tinfoil, tempdir) = recipeparse.init_parser(settings, branch, bitbakepath, nocheckout=options.nocheckout, logger=logger) - except recipeparse.RecipeParseError as e: - logger.error(str(e)) - return(1, '') - logger.debug('Using temp directory %s' % tempdir) - # Clear the default value of SUMMARY so that we can use DESCRIPTION instead if it hasn't been set - tinfoil.config_data.setVar('SUMMARY', '') - # Clear the default value of DESCRIPTION so that we can see where it's not set - tinfoil.config_data.setVar('DESCRIPTION', '') - # Clear the default value of HOMEPAGE ('unknown') - tinfoil.config_data.setVar('HOMEPAGE', '') - # Set a blank value for LICENSE so that it doesn't cause the parser to die (e.g. with meta-ti - - # why won't they just fix that?!) - tinfoil.config_data.setVar('LICENSE', '') - + tinfoil = None + tempdir = None try: with transaction.atomic(): newbranch = False @@ -323,6 +309,20 @@ def main(options, queue): return (1, '') logger.info("Collecting data for layer %s on branch %s" % (layer.name, branchdesc)) + try: + (tinfoil, tempdir) = recipeparse.init_parser(settings, branch, bitbakepath, nocheckout=options.nocheckout, logger=logger) + except recipeparse.RecipeParseError as e: + logger.error(str(e)) + return(1, '') + # Clear the default value of SUMMARY so that we can use DESCRIPTION instead if it hasn't been set + tinfoil.config_data.setVar('SUMMARY', '') + # Clear the default value of DESCRIPTION so that we can see where it's not set + tinfoil.config_data.setVar('DESCRIPTION', '') + # Clear the default value of HOMEPAGE ('unknown') + tinfoil.config_data.setVar('HOMEPAGE', '') + # Set a blank value for LICENSE so that it doesn't cause the parser to die (e.g. with meta-ti - + # why won't they just fix that?!) + tinfoil.config_data.setVar('LICENSE', '') layerconfparser = layerconfparse.LayerConfParse(logger=logger, tinfoil=tinfoil) layer_config_data = layerconfparser.parse_layer(layerdir) @@ -687,12 +687,13 @@ def main(options, queue): import traceback traceback.print_exc() finally: - if LooseVersion(bb.__version__) > LooseVersion("1.27"): + if tinfoil and (LooseVersion(bb.__version__) > LooseVersion("1.27")): tinfoil.shutdown() - if options.keep_temp: - logger.debug('Preserving temp directory %s' % tempdir) - else: - logger.debug('Deleting temp directory') - shutil.rmtree(tempdir) + if tempdir: + if options.keep_temp: + logger.debug('Preserving temp directory %s' % tempdir) + else: + logger.debug('Deleting temp directory') + shutil.rmtree(tempdir) return(0, '') -- 2.7.4 -- _______________________________________________ yocto mailing list [email protected] https://lists.yoctoproject.org/listinfo/yocto
