mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-06 10:59:59 +00:00
categories.yml moves from roles/ to the repository-root meta/, joining packages.yml. utils/roles/categories.py owns its location plus the tree-walking helpers that were stranded in entity/name.py, so no caller spells the path or duplicates the lookup. meta/distros.yml becomes the SPOT for every distribution: os_family, Galaxy platform name, dev-environment base image, and the pkgmgr/pkgmgr-virgin/environment reference templates. It replaces seven scattered copies (DISTRO_FAMILY, VALID_DISTROS, _DISTROS, _CANONICAL_PLATFORMS, two shell arrays, a Makefile literal). INFINITO_DISTROS is no longer a static default but generated by utils/env/handlers/infinito/distros.py; the shell consumers read it through the env layer. Drops dead CLI surface found along the way: --categories-file and --roles-dir on the provision CLI plus three unused parameters of generate_dynamic_inventory, and the positional roles_file of the invokable categories command. tests/lint/repository/test_distros_spot.py pins the copies that cannot call the SPOT (workflow literals, docs table) and forbids composing a pkgmgr reference outside it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
34 lines
916 B
Python
34 lines
916 B
Python
"""INFINITO_PARENT_IMAGE: pkgmgr base image reference composed from
|
|
INFINITO_PARENT_IMAGE_OWNER, INFINITO_DISTRO and INFINITO_PARENT_IMAGE_TAG."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from typing import TYPE_CHECKING
|
|
|
|
from utils.distros import pkgmgr_image
|
|
|
|
if TYPE_CHECKING:
|
|
from utils.env.builder import BuildContext, EnvBuilder
|
|
|
|
KEY = "INFINITO_PARENT_IMAGE"
|
|
COMMENT = (
|
|
"pkgmgr base image (Dockerfile FROM) composed from "
|
|
"INFINITO_PARENT_IMAGE_OWNER, INFINITO_DISTRO and INFINITO_PARENT_IMAGE_TAG."
|
|
)
|
|
|
|
|
|
def compose(owner: str, distro: str, tag: str) -> str:
|
|
return pkgmgr_image(distro, owner=owner, tag=tag)
|
|
|
|
|
|
def apply(eb: EnvBuilder, ctx: BuildContext) -> None:
|
|
eb.setdefault(
|
|
KEY,
|
|
compose(
|
|
eb.get("INFINITO_PARENT_IMAGE_OWNER"),
|
|
eb.get("INFINITO_DISTRO"),
|
|
eb.get("INFINITO_PARENT_IMAGE_TAG"),
|
|
),
|
|
comment=COMMENT,
|
|
)
|