Skip to content

detect_os

build_packages_for_os()

Detect OS/distro and return the filtered package list for that distro.

Source code in src/awesome_os/detect_os.py
def build_packages_for_os() -> tuple[str, str, str | None, list[PackageRef]]:
    """Detect OS/distro and return the filtered package list for that distro."""
    os_info = detect_os()
    system = os_info.family
    distro = os_info.distro
    info = os_info.info
    pkg = resources.files("awesome_os")
    data = yaml.safe_load((pkg / "config" / "packages.yaml").read_text(encoding="utf-8")) or {}
    if not isinstance(data, dict):
        data = {}
    catalog = PackageCatalog(data=data)

    distro_block = catalog.for_distro(distro)
    packages = list(iter_packages(distro_block))
    return system, distro, info, packages