{ inputs, sources, lib, }: let inherit (builtins) fromJSON listToAttrs; inherit (import ./constants.nix) targetMachines pathToRoot pathFromRoot enableAcme ; makeTargetResource = nodeName: { imports = [ ../common/targetResource.nix ]; _module.args = { inherit inputs sources; }; inherit nodeName pathToRoot pathFromRoot enableAcme ; }; ## The deployment function - what we are here to test! ## ## TODO: Modularise `deployment/default.nix` to get rid of the nested ## function calls. makeTestDeployment = args: (import ../..) { inherit lib; inherit (inputs) nixops4 nixops4-nixos; fediversity = import ../../../services/fediversity; } (listToAttrs ( map (nodeName: { name = "${nodeName}ConfigurationResource"; value = makeTargetResource nodeName; }) targetMachines )) args; in makeTestDeployment ( fromJSON ( let env = builtins.getEnv "DEPLOYMENT"; in if env == "" then throw "The DEPLOYMENT environment needs to be set. You do not want to use this deployment unless in the `deployment-panel` NixOS test." else env ) )