|
@@ -0,0 +1,29 @@
|
|
|
+#! /usr/bin/env python3
|
|
|
+
|
|
|
+import pathlib
|
|
|
+import typing
|
|
|
+import sys
|
|
|
+
|
|
|
+"""
|
|
|
+List all of the machines available under the listed sub-layers of meta-arm.
|
|
|
+"""
|
|
|
+def list_machines(layers: typing.Sequence[str]) -> typing.Set[str]:
|
|
|
+ machines = set()
|
|
|
+
|
|
|
+ # We know we're in meta-arm/scripts, so find the top-level directory
|
|
|
+ metaarm = pathlib.Path(__file__).resolve().parent.parent
|
|
|
+ if metaarm.name != "meta-arm":
|
|
|
+ raise Exception("Not running inside meta-arm")
|
|
|
+
|
|
|
+ for layer in layers:
|
|
|
+ machines |= set(p.stem for p in (metaarm / layer / "conf" / "machine").glob("*.conf"))
|
|
|
+ return machines
|
|
|
+
|
|
|
+if __name__ == "__main__":
|
|
|
+ if len(sys.argv) > 1:
|
|
|
+ machines = list_machines(sys.argv[1:])
|
|
|
+ print(" ".join(sorted(machines)))
|
|
|
+ sys.exit(0)
|
|
|
+ else:
|
|
|
+ print("Usage:\n$ %s [layer name ...] " % sys.argv[0])
|
|
|
+ sys.exit(1)
|