# roles/thin-client/hardware/default.nix # # Dispatcher that pulls in the hardware module matching `az.tc.hardwareClass`. # Each concrete module (e.g. dell-optiplex-micro.nix) sets kernel modules, # video drivers, firmware, and kernel parameters appropriate for that SKU. { config, lib, ... }: let cfg = config.az.tc; in { imports = [ ./dell-optiplex-micro.nix ./generic-x86_64-uefi.nix ]; # The actual dispatch happens via mkIf inside each module, checking # `config.az.tc.hardwareClass == ""`. # Adding assertions here so misconfiguration is loud. config = lib.mkIf cfg.enable { assertions = [ { assertion = builtins.elem cfg.hardwareClass ["dell-optiplex-micro" "generic-x86_64-uefi"]; message = "az.tc.hardwareClass must be one of [dell-optiplex-micro generic-x86_64-uefi], got: ${cfg.hardwareClass}"; } ]; }; }