Inventory: generate exact schema for validation & documentation

This commit is contained in:
Johannes Kirschbauer
2024-07-14 13:30:02 +02:00
parent 77577a9f27
commit d49a23b890
8 changed files with 209 additions and 205 deletions

View File

@@ -5,6 +5,8 @@
let
clanModules = self.clanModules;
jsonLib = self.lib.jsonschema { };
# Uncomment if you only want one module to be available
# clanModules = {
# borgbackup = self.clanModules.borgbackup;
@@ -18,13 +20,13 @@
if (eval.options.clan ? "${mName}") then eval.options.clan.${mName} else { };
clanModuleSchemas = lib.mapAttrs (
modulename: _: self.lib.jsonschema.parseOptions (optionsFromModule modulename) { }
modulename: _: jsonLib.parseOptions (optionsFromModule modulename) { }
) clanModules;
clanModuleFunctionSchemas = lib.mapAttrsFlatten (modulename: _: {
name = modulename;
description = self.lib.modules.getShortDescription modulename;
parameters = self.lib.jsonschema.parseOptions (optionsFromModule modulename) { };
parameters = jsonLib.parseOptions (optionsFromModule modulename) { };
}) clanModules;
in
rec {