refactor evalClanModules to accept a module instead of a modulename
This commit is contained in:
@@ -4,9 +4,6 @@
|
||||
pkgs,
|
||||
}:
|
||||
let
|
||||
|
||||
inherit (clan-core) clanModules;
|
||||
|
||||
baseModule = {
|
||||
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
|
||||
# evalClanModules :: [ String ] -> { config, options, ... }
|
||||
# evalClanModules :: [ module ] -> { config, options, ... }
|
||||
evalClanModulesLegacy =
|
||||
modulenames:
|
||||
modules:
|
||||
let
|
||||
evaled = lib.evalModules {
|
||||
modules = [
|
||||
@@ -29,7 +26,7 @@ let
|
||||
clan.core.clanDir = clan-core;
|
||||
}
|
||||
clan-core.nixosModules.clanCore
|
||||
] ++ (map (name: clanModules.${name}) modulenames);
|
||||
] ++ modules;
|
||||
};
|
||||
in
|
||||
# lib.warn ''
|
||||
|
||||
@@ -12,23 +12,18 @@
|
||||
# borgbackup = self.clanModules.borgbackup;
|
||||
# };
|
||||
|
||||
optionsFromModule =
|
||||
mName:
|
||||
let
|
||||
eval = self.lib.evalClanModules [ mName ];
|
||||
in
|
||||
if (eval.options.clan ? "${mName}") then eval.options.clan.${mName} else { };
|
||||
optionsFromModule = name: module: (self.lib.evalClanModules [ module ]).options.clan.${name} or { };
|
||||
|
||||
clanModuleSchemas = lib.mapAttrs (
|
||||
modulename: _: jsonLib.parseOptions (optionsFromModule modulename) { }
|
||||
name: module: jsonLib.parseOptions (optionsFromModule name module) { }
|
||||
) clanModules;
|
||||
|
||||
clanModuleFunctionSchemas = lib.attrsets.mapAttrsToList (
|
||||
modulename: _:
|
||||
modulename: module:
|
||||
(self.lib.modules.getFrontmatter modulename)
|
||||
// {
|
||||
name = modulename;
|
||||
parameters = jsonLib.parseOptions (optionsFromModule modulename) { };
|
||||
parameters = jsonLib.parseOptions (optionsFromModule modulename module) { };
|
||||
}
|
||||
) clanModules;
|
||||
in
|
||||
|
||||
Reference in New Issue
Block a user