common.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. #
  2. # Copyright BitBake Contributors
  3. #
  4. # SPDX-License-Identifier: GPL-2.0-only
  5. #
  6. import argparse
  7. import logging
  8. import os
  9. logger = logging.getLogger('bitbake-layers')
  10. class LayerPlugin():
  11. def __init__(self):
  12. self.tinfoil = None
  13. self.bblayers = []
  14. def tinfoil_init(self, tinfoil):
  15. self.tinfoil = tinfoil
  16. self.bblayers = (self.tinfoil.config_data.getVar('BBLAYERS') or "").split()
  17. layerconfs = self.tinfoil.config_data.varhistory.get_variable_items_files('BBFILE_COLLECTIONS')
  18. self.bbfile_collections = {layer: os.path.dirname(os.path.dirname(path)) for layer, path in layerconfs.items()}
  19. @staticmethod
  20. def add_command(subparsers, cmdname, function, parserecipes=True, *args, **kwargs):
  21. """Convert docstring for function to help."""
  22. docsplit = function.__doc__.splitlines()
  23. help = docsplit[0]
  24. if len(docsplit) > 1:
  25. desc = '\n'.join(docsplit[1:])
  26. else:
  27. desc = help
  28. subparser = subparsers.add_parser(cmdname, *args, help=help, description=desc, formatter_class=argparse.RawTextHelpFormatter, **kwargs)
  29. subparser.set_defaults(func=function, parserecipes=parserecipes)
  30. return subparser
  31. def get_layer_name(self, layerdir):
  32. return os.path.basename(layerdir.rstrip(os.sep))