From 9b53e33ffcadf6f7cfaac4f1e4c8df2cdd736c90 Mon Sep 17 00:00:00 2001 From: aszlig Date: Tue, 3 Apr 2018 03:18:56 +0200 Subject: 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 --- lib/call-machine.nix | 6 +++--- lib/call-network.nix | 31 ++++++++++++++++++------------- 2 files changed, 21 insertions(+), 16 deletions(-) (limited to 'lib') 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; +} -- cgit 1.4.1