diff options
author | Robert Hensing <roberth@users.noreply.github.com> | 2022-08-31 15:27:03 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-08-31 15:27:03 +0200 |
commit | 3ebb588ab306190ce0823d3f9cbeb993d959cf45 (patch) | |
tree | d011375c48139d10c9626b033554d1c2deb0f288 /lib | |
parent | c531b409f666b101bbb3f4937db7fb15e4e874b2 (diff) | |
parent | e2cc36197053c087b16009750fd3e60029600e25 (diff) |
Merge pull request #188289 from erikarvstedt/fix-disabled-modules-abs-paths
lib.modules: support strings with absolute paths in `disabledModules`
Diffstat (limited to 'lib')
-rw-r--r-- | lib/modules.nix | 4 | ||||
-rwxr-xr-x | lib/tests/modules.sh | 1 | ||||
-rw-r--r-- | lib/tests/modules/disable-define-enable-string-path.nix | 5 |
3 files changed, 9 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 { diff --git a/lib/tests/modules.sh b/lib/tests/modules.sh index c92cc62023b56..2ef7c48065952 100755 --- a/lib/tests/modules.sh +++ b/lib/tests/modules.sh @@ -130,6 +130,7 @@ checkConfigOutput '^true$' "$@" ./define-enable.nix ./define-attrsOfSub-foo-enab set -- config.enable ./define-enable.nix ./declare-enable.nix checkConfigOutput '^true$' "$@" checkConfigOutput '^false$' "$@" ./disable-define-enable.nix +checkConfigOutput '^false$' "$@" ./disable-define-enable-string-path.nix checkConfigError "The option .*enable.* does not exist. Definition values:\n\s*- In .*: true" "$@" ./disable-declare-enable.nix checkConfigError "attribute .*enable.* in selection path .*config.enable.* not found" "$@" ./disable-define-enable.nix ./disable-declare-enable.nix checkConfigError "attribute .*enable.* in selection path .*config.enable.* not found" "$@" ./disable-enable-modules.nix diff --git a/lib/tests/modules/disable-define-enable-string-path.nix b/lib/tests/modules/disable-define-enable-string-path.nix new file mode 100644 index 0000000000000..6429a6d6354ae --- /dev/null +++ b/lib/tests/modules/disable-define-enable-string-path.nix @@ -0,0 +1,5 @@ +{ lib, ... }: + +{ + disabledModules = [ (toString ./define-enable.nix) ]; +} |