#! /usr/bin/env python3 """ Print an overview of the layer to help writing release notes. Output includes sublayers, machines, recipes. """ # TODO: # - More human-readable output # - Diff mode, give two revisions and list the changes # - Support finding no sublayers, meaning the path is a single layer import argparse parser = argparse.ArgumentParser() parser.add_argument("repository") parser.add_argument("revision", nargs="?") args = parser.parse_args() if args.revision: import gitpathlib base = gitpathlib.GitPath(args.repository, args.revision) else: import pathlib base = pathlib.Path(args.repository) print("Sub-Layers") sublayers = sorted(p for p in base.glob("meta-*") if p.is_dir()) for l in sublayers: print(f" {l.name}") print() for layer in sublayers: print(layer.name) machines = sorted(p for p in layer.glob("conf/machine/*.conf")) if machines: print(" Machines") for m in machines: print(f" {m.stem}") print() recipes = sorted((p for p in layer.glob("recipes-*/*/*.bb")), key=lambda p:p.name) if recipes: print(" Recipes") for r in recipes: if "_" in r.stem: pn, pv = r.stem.rsplit("_", 1) print(f" {pn} {pv}") else: print(f" {r.stem}") print()