"""Machine profiles compose concerns; concerns never depend on a host.""" from modules.host_system import desktop_system, laptop_system from modules.packages import PackageConcern COMMON = ( "common/core", "common/hardware", "common/wayland", "common/fonts", "common/development", "common/productivity", "common/media", "common/research", "common/network", "common/services", ) LAPTOP = ("laptop/hardware",) DESKTOP = ("desktop/local",) def _concerns(names: tuple[str, ...]) -> list[PackageConcern]: return [PackageConcern(name) for name in names] def laptop() -> list: """Laptop: shared concerns, laptop hardware, and laptop system configuration.""" return [*_concerns((*COMMON, *LAPTOP)), *laptop_system()] def desktop() -> list: """Desktop: shared packages plus desktop-specific system configuration.""" return [*_concerns((*COMMON, *DESKTOP)), *desktop_system()]