{ nixpkgs, flake-utils, ... }: flake-utils.lib.eachDefaultSystem (system: let pkgs = nixpkgs.legacyPackages.${system}; lib = pkgs.lib; machineOpts = {config, ...}: { options = { nixosModule = lib.mkOption { default = {...}: {}; type = lib.types.anything; description = '' Customized configuration for this machine in the form of a NixOS module. ''; }; }; }; allOpts = { options = { machines = lib.mkOption { type = with lib.types; attrsOf (submodule machineOpts); }; }; }; in { machines = (lib.modules.evalModules { modules = [ allOpts ./warwick ./atlas ./jefke ./lewis # ./talos.nix ]; }) .config .machines; })