32 lines
1.2 KiB
Python
32 lines
1.2 KiB
Python
#!/usr/bin/env python3
|
|
"""Generate an ADT sidecar from compiled hardware and OS/device profiles."""
|
|
import argparse
|
|
from pathlib import Path
|
|
import tomllib
|
|
|
|
from unixnu.devicetree import generate
|
|
from unixnu.profiles import merge
|
|
from unixnu.util import Error
|
|
|
|
|
|
|
|
parser = argparse.ArgumentParser(description=__doc__)
|
|
parser.add_argument('--dtb', required=True, type=Path)
|
|
parser.add_argument('--os-profile', required=True, type=Path)
|
|
parser.add_argument('--board', required=True, type=Path)
|
|
parser.add_argument('--output', required=True, type=Path)
|
|
parser.add_argument('--unique-chip-id')
|
|
parser.add_argument('--data-ramdisk', action='store_true')
|
|
parser.add_argument('--trust-cache', action='store_true')
|
|
parser.add_argument('--gpu-addon', action='store_true')
|
|
args = parser.parse_args()
|
|
config = merge(tomllib.loads(args.os_profile.read_text()), tomllib.loads(args.board.read_text()))
|
|
try:
|
|
result = generate(args.dtb, config, unique_chip_id=args.unique_chip_id,
|
|
data=args.data_ramdisk, trust=args.trust_cache, addon=args.gpu_addon)
|
|
except Error as error:
|
|
parser.error(str(error))
|
|
args.output.parent.mkdir(parents=True, exist_ok=True)
|
|
args.output.write_bytes(result)
|
|
print(f'ADT: {args.output} ({len(result)} bytes)')
|