mirror of
https://git.yoctoproject.org/meta-arm
synced 2026-01-12 03:10:15 +00:00
Change-Id: Icb4e29d80f1db9791ce801910563695c9fdc76b3 Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Jon Mason <jon.mason@arm.com>
53 lines
1.3 KiB
Python
Executable File
53 lines
1.3 KiB
Python
Executable File
#! /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()
|