refactor evalClanModules to accept a module instead of a modulename

This commit is contained in:
Jörg Thalheim
2024-10-09 14:39:11 +02:00
parent 4ed264a8cb
commit 7a3b176a00
2 changed files with 7 additions and 15 deletions

View File

@@ -4,9 +4,6 @@
pkgs, pkgs,
}: }:
let let
inherit (clan-core) clanModules;
baseModule = { baseModule = {
imports = (import (pkgs.path + "/nixos/modules/module-list.nix")) ++ [ imports = (import (pkgs.path + "/nixos/modules/module-list.nix")) ++ [
{ {
@@ -18,9 +15,9 @@ let
}; };
# This function takes a list of module names and evaluates them # This function takes a list of module names and evaluates them
# evalClanModules :: [ String ] -> { config, options, ... } # evalClanModules :: [ module ] -> { config, options, ... }
evalClanModulesLegacy = evalClanModulesLegacy =
modulenames: modules:
let let
evaled = lib.evalModules { evaled = lib.evalModules {
modules = [ modules = [
@@ -29,7 +26,7 @@ let
clan.core.clanDir = clan-core; clan.core.clanDir = clan-core;
} }
clan-core.nixosModules.clanCore clan-core.nixosModules.clanCore
] ++ (map (name: clanModules.${name}) modulenames); ] ++ modules;
}; };
in in
# lib.warn '' # lib.warn ''

View File

@@ -12,23 +12,18 @@
# borgbackup = self.clanModules.borgbackup; # borgbackup = self.clanModules.borgbackup;
# }; # };
optionsFromModule = optionsFromModule = name: module: (self.lib.evalClanModules [ module ]).options.clan.${name} or { };
mName:
let
eval = self.lib.evalClanModules [ mName ];
in
if (eval.options.clan ? "${mName}") then eval.options.clan.${mName} else { };
clanModuleSchemas = lib.mapAttrs ( clanModuleSchemas = lib.mapAttrs (
modulename: _: jsonLib.parseOptions (optionsFromModule modulename) { } name: module: jsonLib.parseOptions (optionsFromModule name module) { }
) clanModules; ) clanModules;
clanModuleFunctionSchemas = lib.attrsets.mapAttrsToList ( clanModuleFunctionSchemas = lib.attrsets.mapAttrsToList (
modulename: _: modulename: module:
(self.lib.modules.getFrontmatter modulename) (self.lib.modules.getFrontmatter modulename)
// { // {
name = modulename; name = modulename;
parameters = jsonLib.parseOptions (optionsFromModule modulename) { }; parameters = jsonLib.parseOptions (optionsFromModule modulename module) { };
} }
) clanModules; ) clanModules;
in in