From 6bbe4fe48c93d1e2b67a36aa82d2ea5e289a219c Mon Sep 17 00:00:00 2001 From: Christopher Larson Date: Sat, 30 Apr 2016 12:41:00 -0700 Subject: bitbake: bitbake-layers: convert to plugin-based This uses bb.utils.load_plugins, based on the plugin handling in recipetool and devtool in oe-core. (Bitbake rev: 5e542df9b966a99b5a5b8aa7cf6100174aff54b2) Signed-off-by: Christopher Larson Signed-off-by: Richard Purdie --- bitbake/lib/bblayers/common.py | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 bitbake/lib/bblayers/common.py (limited to 'bitbake/lib/bblayers/common.py') diff --git a/bitbake/lib/bblayers/common.py b/bitbake/lib/bblayers/common.py new file mode 100644 index 0000000000..360b9d764f --- /dev/null +++ b/bitbake/lib/bblayers/common.py @@ -0,0 +1,33 @@ +import argparse +import logging +import os + +logger = logging.getLogger('bitbake-layers') + + +class LayerPlugin(): + def __init__(self): + self.tinfoil = None + self.bblayers = [] + + def tinfoil_init(self, tinfoil): + self.tinfoil = tinfoil + self.bblayers = (self.tinfoil.config_data.getVar('BBLAYERS', True) or "").split() + layerconfs = self.tinfoil.config_data.varhistory.get_variable_items_files('BBFILE_COLLECTIONS', self.tinfoil.config_data) + self.bbfile_collections = {layer: os.path.dirname(os.path.dirname(path)) for layer, path in layerconfs.iteritems()} + + @staticmethod + def add_command(subparsers, cmdname, function, parserecipes=True, *args, **kwargs): + """Convert docstring for function to help.""" + docsplit = function.__doc__.splitlines() + help = docsplit[0] + if len(docsplit) > 1: + desc = '\n'.join(docsplit[1:]) + else: + desc = help + subparser = subparsers.add_parser(cmdname, *args, help=help, description=desc, formatter_class=argparse.RawTextHelpFormatter, **kwargs) + subparser.set_defaults(func=function, parserecipes=parserecipes) + return subparser + + def get_layer_name(self, layerdir): + return os.path.basename(layerdir.rstrip(os.sep)) -- cgit v1.2.3-54-g00ecf