nix/evaluator.nix in confctl-1.0.0 vs nix/evaluator.nix in confctl-2.0.0
- old
+ new
@@ -16,12 +16,12 @@
};
nameValuePairs = builtins.map (m: {
name = m.name;
value = {
- inherit (m) name;
- } // m.config;
+ inherit (m) name alias clusterName carrier metaConfig;
+ };
}) machines;
machinesAttrs = builtins.listToAttrs nameValuePairs;
fullMachinesAttrs = builtins.listToAttrs (builtins.map (m: {
@@ -51,11 +51,11 @@
machineSwpins = m:
import ./lib/swpins/eval.nix {
inherit (arg) confDir;
name = m.name;
- channels = m.config.swpins.channels;
+ channels = m.metaConfig.swpins.channels;
pkgs = corePkgs.pkgs;
lib = corePkgs.lib;
};
coreSwpinsAttrs = coreSwpins.evaluated;
@@ -68,20 +68,31 @@
selectedToplevels = builtins.listToAttrs (builtins.map (host: {
name = host;
value = buildToplevel fullMachinesAttrs.${host};
}) arg.machines);
- buildToplevel = m: (evalMachine m).config.system.build.toplevel;
+ buildToplevel = machine:
+ let
+ machineConfig = (evalMachine machine).config;
- evalMachine = m:
+ buildAttr = coreLib.attrByPath machine.build.attribute null machineConfig;
+
+ result =
+ if isNull buildAttr then
+ abort "Attribute 'config.${coreLib.concatStringsSep "." machine.build.attribute}' not found on machine ${machine.name}"
+ else
+ buildAttr;
+ in result;
+
+ evalMachine = machine:
let
importPath = {
nixos = <nixpkgs/nixos/lib/eval-config.nix>;
vpsadminos = <vpsadminos/os/default.nix>;
};
- evalConfig = import importPath.${m.config.spin} {
- modules = [ m.build.toplevel ];
+ evalConfig = import importPath.${machine.metaConfig.spin} {
+ modules = machine.extraModules ++ [ machine.build.toplevel ];
};
in evalConfig;
evalConfctl =
let