From: Ross Burton Date: Wed, 7 Aug 2024 17:27:31 +0000 (+0100) Subject: bblayers/machines: add bitbake-layers command to list machines X-Git-Tag: yocto-5.1~338 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=837d32dafc125d58bb11da990ac251bd5aad027e;p=thirdparty%2Fopenembedded%2Fopenembedded-core.git bblayers/machines: add bitbake-layers command to list machines Add a command to bitbake-layers to list the machines available in the current configuration. Signed-off-by: Ross Burton Signed-off-by: Richard Purdie --- diff --git a/meta/lib/bblayers/machines.py b/meta/lib/bblayers/machines.py new file mode 100644 index 00000000000..5fd970af0ec --- /dev/null +++ b/meta/lib/bblayers/machines.py @@ -0,0 +1,37 @@ +# +# 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')