From f6bb721d831a6bc7455bb404f3bbde1006b90988 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Wed, 9 Oct 2024 14:39:11 +0200 Subject: [PATCH] refactor evalClanModules to accept a module instead of a modulename --- lib/eval-clan-modules/default.nix | 9 +++------ pkgs/schemas/flake-module.nix | 13 ++++--------- 2 files changed, 7 insertions(+), 15 deletions(-) diff --git a/lib/eval-clan-modules/default.nix b/lib/eval-clan-modules/default.nix index bb4220173..a5d4f5995 100644 --- a/lib/eval-clan-modules/default.nix +++ b/lib/eval-clan-modules/default.nix @@ -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 '' diff --git a/pkgs/schemas/flake-module.nix b/pkgs/schemas/flake-module.nix index e9e186874..648903b5f 100644 --- a/pkgs/schemas/flake-module.nix +++ b/pkgs/schemas/flake-module.nix @@ -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