diff --git a/infra/flake-part.nix b/infra/flake-part.nix index dd43bb18..a0e223d8 100644 --- a/infra/flake-part.nix +++ b/infra/flake-part.nix @@ -1,6 +1,14 @@ -{ self, inputs, ... }: +{ + self, + inputs, + lib, + ... +}: let + inherit (builtins) mapAttrs; + inherit (lib.attrsets) genAttrs; + makeResource = vmid: { providers, ... }: @@ -29,38 +37,27 @@ let }; }; + makeDeployments = mapAttrs ( + _: vmids: + { providers, ... }: + { + providers.local = inputs.nixops4-nixos.modules.nixops4Provider.local; + resources = genAttrs vmids (vmid: makeResource vmid { inherit providers; }); + } + ); + in { - nixops4Deployments.git = - { providers, ... }: - { - providers.local = inputs.nixops4-nixos.modules.nixops4Provider.local; - - resources = { - vm02116 = makeResource "vm02116" { inherit providers; }; - fedi300 = makeResource "fedi300" { inherit providers; }; - }; - }; - - nixops4Deployments.web = - { providers, ... }: - { - providers.local = inputs.nixops4-nixos.modules.nixops4Provider.local; - - resources = { - vm02187 = makeResource "vm02187" { inherit providers; }; - }; - }; - - nixops4Deployments.other = - { providers, ... }: - { - providers.local = inputs.nixops4-nixos.modules.nixops4Provider.local; - - resources = { - vm02117 = makeResource "vm02117" { inherit providers; }; - vm02179 = makeResource "vm02179" { inherit providers; }; - vm02186 = makeResource "vm02186" { inherit providers; }; - }; - }; + nixops4Deployments = makeDeployments { + git = [ + "vm02116" + "fedi300" + ]; + web = [ "vm02187" ]; + other = [ + "vm02117" + "vm02179" + "vm02186" + ]; + }; }