diff options
author | Erik Arvstedt <erik.arvstedt@gmail.com> | 2022-08-25 14:03:57 +0200 |
---|---|---|
committer | Erik Arvstedt <erik.arvstedt@gmail.com> | 2022-08-31 14:23:28 +0200 |
commit | e2cc36197053c087b16009750fd3e60029600e25 (patch) | |
tree | f4c4231d1f29da8ec740b70598a7d94e5ed7a3d1 /lib/modules.nix | |
parent | cbf9a129d273d203a98c2fefe8bda52af42ab5e3 (diff) |
lib.modules: support strings with absolute paths in `disabledModules`
This is particularly useful for disabling modules defined in a flake. Example: disabledModules = [ "${flake}/modules/mymodule.nix" ]; Previously, absolute string paths were internally prepended with `modulesPath`, which caused the module filtering to fail.
Diffstat (limited to 'lib/modules.nix')
-rw-r--r-- | lib/modules.nix | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/modules.nix b/lib/modules.nix index 7f1646e9b8bc0..6a1b0bfdc4fa7 100644 --- a/lib/modules.nix +++ b/lib/modules.nix @@ -433,7 +433,9 @@ rec { # modules recursively. It returns the final list of unique-by-key modules filterModules = modulesPath: { disabled, modules }: let - moduleKey = m: if isString m then toString modulesPath + "/" + m else toString m; + moduleKey = m: if isString m && (builtins.substring 0 1 m != "/") + then toString modulesPath + "/" + m + else toString m; disabledKeys = map moduleKey disabled; keyFilter = filter (attrs: ! elem attrs.key disabledKeys); in map (attrs: attrs.module) (builtins.genericClosure { |