refactor evalClanModules to accept a module instead of a modulename
This commit is contained in:
@@ -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 ''
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user