about summary refs log tree commit diff
path: root/lib/call-network.nix
blob: d9e073f10eb87702984adf897fb01a69867a42c7 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
path: args:

with import "${import ../nixpkgs-path.nix}/lib";

let
  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