From 27644a82a99b4855e40dfd6c09d7288664217662 Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Fri, 29 Oct 2021 13:15:38 +0200 Subject: modules: Add extendModules to module args --- lib/modules.nix | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) (limited to 'lib/modules.nix') diff --git a/lib/modules.nix b/lib/modules.nix index c25972999dfe2..3a420451bf8e8 100644 --- a/lib/modules.nix +++ b/lib/modules.nix @@ -121,7 +121,9 @@ rec { }; config = { - _module.args = args; + _module.args = { + inherit extendModules; + } // args; }; }; @@ -186,24 +188,26 @@ rec { checked = builtins.seq checkUnmatched; + extendModules = extendArgs@{ + modules ? [], + specialArgs ? {}, + prefix ? [], + }: + evalModules (evalModulesArgs // { + modules = evalModulesArgs.modules ++ modules; + specialArgs = evalModulesArgs.specialArgs or {} // specialArgs; + prefix = extendArgs.prefix or evalModulesArgs.prefix; + }); + + type = lib.types.submoduleWith { + inherit modules specialArgs; + }; + result = { options = checked options; config = checked (removeAttrs config [ "_module" ]); _module = checked (config._module); - - extendModules = extendArgs@{ - modules ? [], - specialArgs ? {}, - prefix ? [], - }: - evalModules (evalModulesArgs // { - modules = evalModulesArgs.modules ++ modules; - specialArgs = evalModulesArgs.specialArgs or {} // specialArgs; - prefix = extendArgs.prefix or evalModulesArgs.prefix; - }); - type = lib.types.submoduleWith { - inherit modules specialArgs; - }; + inherit extendModules type; }; in result; -- cgit 1.4.1