diff --git a/src/dotfiles/registry.nix b/src/dotfiles/registry.nix index 2582ce4..94bfa21 100644 --- a/src/dotfiles/registry.nix +++ b/src/dotfiles/registry.nix @@ -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 + ); + }; } diff --git a/src/dotfiles/registry/validation.nix b/src/dotfiles/registry/validation.nix index 2e5a763..5670b5d 100644 --- a/src/dotfiles/registry/validation.nix +++ b/src/dotfiles/registry/validation.nix @@ -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 +)