about summary refs log tree commit diff
path: root/lib/call-network.nix
diff options
context:
space:
mode:
Diffstat (limited to 'lib/call-network.nix')
-rw-r--r--lib/call-network.nix28
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