{ nixpkgs, ... }: { generateColmenaHost = name: { site, modules, ... }: { deployment = { targetHost = "${name}.${site}.grzb.de"; targetUser = "colmena-deploy"; }; # Set imports and optionally import colmena secrets configuration imports = modules ++ nixpkgs.lib.optional (builtins.pathExists ./config/hosts/${name}/secrets.nix) ./config/hosts/${name}/secrets.nix; }; generateNixConfiguration = name: specialArgs: { hostNixpkgs, system, modules, ... }: let # Filter attritubes starting with _ to avoid infinite recursion when building with hydra # TODO: Why does this happen? filter = name: host: (builtins.substring 0 1 name) != "_"; in (nixpkgs.lib.filterAttrs filter (hostNixpkgs.lib.nixosSystem { inherit system modules specialArgs; })).config.system.build.toplevel; # Builds the entire NixOS system, see: https://nixos.org/manual/nixos/stable/#sec-building-parts }