From 1eddd9c061070b800837d6d18d3cbac69ddcb625 Mon Sep 17 00:00:00 2001 From: Ross Burton Date: Wed, 7 Aug 2024 18:27:31 +0100 Subject: [PATCH] bblayers/machines: add bitbake-layers command to list machines Add a command to bitbake-layers to list the machines available in the current configuration. (From OE-Core rev: b567974b8432f84cb8a1b33a8037f9d9aea8889d) Signed-off-by: Ross Burton Signed-off-by: Richard Purdie --- meta/lib/bblayers/machines.py | 37 +++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 meta/lib/bblayers/machines.py 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')