Checks: add json-compat check wrapper to ensure all clan.modules stay json-compatible

This commit is contained in:
Johannes Kirschbauer
2025-04-29 15:31:02 +02:00
parent a4a1363195
commit 3d09c98ed3
3 changed files with 34 additions and 6 deletions

View File

@@ -64,7 +64,33 @@ in
self'.legacyPackages.homeConfigurations or { }
);
in
nixosTests // flakeOutputs;
nixosTests
// flakeOutputs
// {
# TODO: Automatically provide this check to downstream users to check their modules
clan-modules-json-compatible =
let
allSchemas = lib.mapAttrs (
_n: m:
let
schema =
(self.clanLib.inventory.evalClanService {
modules = [ m ];
key = "checks";
}).config.result.api.schema;
in
schema
) self.clan.modules;
in
pkgs.runCommand "combined-result"
{
schemaFile = builtins.toFile "schemas.json" (builtins.toJSON allSchemas);
}
''
mkdir -p $out
cat $schemaFile > $out/allSchemas.json
'';
};
legacyPackages = {
nixosTests =
let