{ lib, ... }: let machineOpts = { config, ... }: { options = { arch = lib.mkOption { default = null; type = with lib.types; nullOr str; description = '' CPU architecture of this machine. ''; }; isRaspberryPi = lib.mkOption { default = false; type = lib.types.bool; }; nixosModule = lib.mkOption { default = { ... }: { }; type = lib.types.anything; description = '' Customized configuration for this machine in the form of a NixOS module. ''; }; }; }; in { imports = [ ./warwick.nix ./atlas.nix ./jefke.nix ./lewis.nix ]; options = { machines = lib.mkOption { type = with lib.types; attrsOf (submodule machineOpts); }; }; }