#! /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)