summaryrefslogtreecommitdiff
path: root/poky/meta/lib/bblayers/machines.py
diff options
context:
space:
mode:
Diffstat (limited to 'poky/meta/lib/bblayers/machines.py')
-rw-r--r--poky/meta/lib/bblayers/machines.py37
1 files changed, 37 insertions, 0 deletions
diff --git a/poky/meta/lib/bblayers/machines.py b/poky/meta/lib/bblayers/machines.py
new file mode 100644
index 0000000000..5fd970af0e
--- /dev/null
+++ b/poky/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')