# # Copyright OpenEmbedded Contributors # # SPDX-License-Identifier: GPL-2.0-only # import logging import pathlib from bblayers.common import LayerPlugin logger = logging.getLogger('bitbake-layers') def plugin_init(plugins): return ShowMachinesPlugin() class ShowMachinesPlugin(LayerPlugin): def do_show_machines(self, args): """List the machines available in the currently configured layers.""" for layer_dir in self.bblayers: layer_name = self.get_layer_name(layer_dir) if args.layer and args.layer != layer_name: continue for p in sorted(pathlib.Path(layer_dir).glob("conf/machine/*.conf")): if args.bare: logger.plain("%s" % (p.stem)) else: logger.plain("%s (%s)" % (p.stem, layer_name)) def register_commands(self, sp): parser_show_machines = self.add_command(sp, "show-machines", self.do_show_machines) parser_show_machines.add_argument('-b', '--bare', help='output just the machine names, not the source layer', action='store_true') parser_show_machines.add_argument('-l', '--layer', help='Limit to machines in the specified layer')