{ inputs, nixosModules, overlays, userdata, ... }: { # Helper function for generating host configurations. mkHost = { hostname, system ? "x86_64-linux", extraArgs ? {}, extraModules ? [], }: let inherit (inputs.nixpkgs) lib; in inputs.nixpkgs.lib.nixosSystem { inherit system; specialArgs = {inherit inputs userdata;} // extraArgs; modules = [ { networking.hostName = lib.mkDefault hostname; nixpkgs.overlays = overlays; } ../machines/${hostname} nixosModules.default inputs.agenix.nixosModules.default inputs.disko.nixosModules.disko inputs.home-manager.nixosModules.home-manager ] ++ extraModules; }; forAllSystems = inputs.nixpkgs.lib.genAttrs [ "aarch64-linux" "i686-linux" "x86_64-linux" "aarch64-darwin" "x86_64-darwin" ]; }