refactor(dotfiles): separate registry validation
This commit is contained in:
@@ -20,14 +20,12 @@ let
|
||||
];
|
||||
}).config;
|
||||
|
||||
data = validate (
|
||||
lib.mapAttrs (
|
||||
registryName: _registry:
|
||||
lib.mapAttrs (hostName: host: host.config.registry.${registryName}.${hostName} or { }) hosts
|
||||
) definitions
|
||||
);
|
||||
|
||||
validate = import ./registry/validation.nix { inherit definitions lib; };
|
||||
|
||||
data = lib.mapAttrs (
|
||||
registryName: _registry:
|
||||
lib.mapAttrs (hostName: host: host.config.registry.${registryName}.${hostName} or { }) hosts
|
||||
) definitions;
|
||||
in
|
||||
{
|
||||
types = lib.mapAttrs (_name: definition: definition.type) definitions;
|
||||
@@ -46,13 +44,16 @@ in
|
||||
) definitions;
|
||||
};
|
||||
|
||||
collected = data // {
|
||||
join =
|
||||
host: entry:
|
||||
lib.filterAttrs (_name: value: value != null) (
|
||||
lib.mapAttrs (
|
||||
registryName: _registry: (data.${registryName}.${host} or { }).${entry} or null
|
||||
) definitions
|
||||
);
|
||||
};
|
||||
collected =
|
||||
assert validate data;
|
||||
data
|
||||
// {
|
||||
join =
|
||||
host: entry:
|
||||
lib.filterAttrs (_name: value: value != null) (
|
||||
lib.mapAttrs (
|
||||
registryName: _registry: (data.${registryName}.${host} or { }).${entry} or null
|
||||
) definitions
|
||||
);
|
||||
};
|
||||
}
|
||||
|
||||
@@ -36,9 +36,8 @@ data:
|
||||
let
|
||||
assertions = validationAssertions data;
|
||||
in
|
||||
assert lib.assertMsg (lib.all (assertion: assertion.assertion) assertions) (
|
||||
lib.assertMsg (lib.all (assertion: assertion.assertion) assertions) (
|
||||
lib.concatMapStringsSep "\n" (assertion: assertion.message) (
|
||||
lib.filter (assertion: !assertion.assertion) assertions
|
||||
)
|
||||
);
|
||||
data
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user