nixos/eval-config: Deprecate NIXOS_EXTRA_MODULE_PATH

This gets rid of a potentially confusing behavior that doesn't need to
be in NixOS, and nobody ever bothered to add a test for it.
Let's keep things simple!
The suggested snippet is better than this feature ever was, and will be
in the user's face, where it belongs, kindly.

Tested with

    nix-instantiate nixos/lib/eval-config.nix --arg modules '[{fileSystems."/".device="x";boot.loader.grub.enable=false;}]' -A config.system.build.toplevel
    NIXOS_EXTRA_MODULE_PATH=$HOME/whatever.nix nix-instantiate nixos/lib/eval-config.nix --arg modules '[{fileSystems."/".device="x";boot.loader.grub.enable=false;}]' -A config.system.build.toplevel
This commit is contained in:
Robert Hensing
2024-10-18 16:54:07 +02:00
parent 4ba22a8820
commit 5f197bf5d0
3 changed files with 24 additions and 31 deletions

View File

@@ -30,8 +30,29 @@ evalConfigArgs@
check ? true
, prefix ? []
, lib ? import ../../lib
, extraModules ? let e = builtins.getEnv "NIXOS_EXTRA_MODULE_PATH";
in lib.optional (e != "") (import e)
, extraModules ?
let e = builtins.getEnv "NIXOS_EXTRA_MODULE_PATH";
in lib.optional (e != "") (
lib.warn
''
The NIXOS_EXTRA_MODULE_PATH environment variable is deprecated and will be
removed in NixOS 25.05.
We recommend a workflow where you update the expression files instead, but
if you wish to continue to use this variable, you may do so with a module like:
{
imports = [
(builtins.getEnv "NIXOS_EXTRA_MODULE_PATH")
];
}
This has the benefit that your configuration hints at the
non-standard workflow.
''
# NOTE: this import call is unnecessary and it even removes the file name
# from error messages.
import e
)
}:
let