about summary refs log tree commit diff
path: root/lib
diff options
context:
space:
mode:
authoraszlig <aszlig@nix.build>2018-04-03 03:18:56 +0200
committeraszlig <aszlig@nix.build>2018-04-03 03:18:56 +0200
commit9b53e33ffcadf6f7cfaac4f1e4c8df2cdd736c90 (patch)
treebb092199294502f4f4d7b7a384f79e64b788c15b /lib
parent52d24cd24bfa652eef86d85d22743619477c13e8 (diff)
Fix up call-network and rename withPkgsPath
Using __withPkgsPath is a way better name, because two underscores in
front of it commonly designate an internal attribute, which it is.

The callNetwork function now works in a similar vain as callMachine,
having a canonical way to specify the path to nixpkgs.

I've also changed the recursive search of machines to use the
__withPkgsPath attribute as a way to detect whether it's a machine.

Signed-off-by: aszlig <aszlig@nix.build>
Diffstat (limited to 'lib')
-rw-r--r--lib/call-machine.nix6
-rw-r--r--lib/call-network.nix31
2 files changed, 21 insertions, 16 deletions
diff --git a/lib/call-machine.nix b/lib/call-machine.nix
index 8c50ce16..f500dd21 100644
--- a/lib/call-machine.nix
+++ b/lib/call-machine.nix
@@ -1,7 +1,7 @@
 path: cfg:
 
 let
-  withPkgsPath = nixpkgs: rec {
+  __withPkgsPath = nixpkgs: rec {
     eval = import "${nixpkgs}/nixos/lib/eval-config.nix" {
       modules = [ path cfg ] ++ import ../modules/module-list.nix;
     };
@@ -63,11 +63,11 @@ let
   };
 
 in rec {
-  inherit (withPkgsPath (import ../nixpkgs-path.nix))
+  inherit (__withPkgsPath (import ../nixpkgs-path.nix))
     build config eval iso installerIso vm;
 
   # This is internal only and for use with restricted evaluation mode in Hydra
   # to get the path to nixpkgs from the jobset input args instead of
   # ../nixpkgs-path.nix.
-  inherit withPkgsPath;
+  inherit __withPkgsPath;
 }
diff --git a/lib/call-network.nix b/lib/call-network.nix
index 6b621357..509f34b9 100644
--- a/lib/call-network.nix
+++ b/lib/call-network.nix
@@ -1,19 +1,24 @@
 path: args:
 
-with import "${import ../nixpkgs-path.nix}/lib";
-
 let
-  machineAttrs = import path;
+  __withPkgsPath = nixpkgs: let
+    lib = import "${nixpkgs}/lib";
+
+    machineAttrs = import path;
+
+    mkMachine = name: {
+      inherit name;
+      value = (import ./call-machine.nix machineAttrs.${name} ({ lib, ... }: {
+        imports = lib.singleton (args.extraConfig or {});
+        networking.hostName = lib.mkOverride 900 name;
+        _module.args.nodes = lib.mapAttrs (lib.const (m: m ? eval)) machines;
+      } // removeAttrs args [ "extraConfig" ])).__withPkgsPath nixpkgs;
+    };
 
-  mkMachine = name: {
-    inherit name;
-    value = import ./call-machine.nix machineAttrs.${name} ({ 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 = lib.listToAttrs (map mkMachine (lib.attrNames machineAttrs));
 
-  machines = listToAttrs (map mkMachine (attrNames machineAttrs));
+  in machines;
 
-in machines
+in __withPkgsPath (import ../nixpkgs-path.nix) // {
+  inherit __withPkgsPath;
+}