diff options
Diffstat (limited to 'lib/call-network.nix')
-rw-r--r-- | lib/call-network.nix | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/lib/call-network.nix b/lib/call-network.nix index dac125e7..d9e073f1 100644 --- a/lib/call-network.nix +++ b/lib/call-network.nix @@ -1,15 +1,21 @@ path: args: -with builtins; +with import "${import ../nixpkgs-path.nix}/lib"; let - machines = import path; -in listToAttrs (map (name: { - inherit name; - value = import ./call-machine.nix machines.${name} ({ - extraConfig = { lib, ... }: { - imports = lib.singleton (args.extraConfig or {}); - networking.hostName = lib.mkOverride 900 name; - }; - } // removeAttrs args [ "extraConfig" ]); -}) (attrNames machines)) + machineAttrs = import path; + + mkMachine = name: { + inherit name; + value = import ./call-machine.nix machineAttrs.${name} ({ + extraConfig = { lib, ... }: { + imports = lib.singleton (args.extraConfig or {}); + networking.hostName = lib.mkOverride 900 name; + _module.args.nodes = mapAttrs (const (m: m ? eval)) machines; + }; + } // removeAttrs args [ "extraConfig" ]); + }; + + machines = listToAttrs (map mkMachine (attrNames machineAttrs)); + +in machines |