diff options
author | Robert Hensing <robert@roberthensing.nl> | 2023-02-07 20:51:17 +0100 |
---|---|---|
committer | Robert Hensing <robert@roberthensing.nl> | 2023-05-06 18:29:03 +0200 |
commit | 2e689d58cbbe6b7047bb132dc79097016e606dd0 (patch) | |
tree | f9b5b7b15606344db2fe3a70076b6f3df625bb51 /lib/tests | |
parent | 58f385f68005a6fed7b526ee2c19fef11d87038c (diff) |
lib/modules: Improve error when a configuration is imported
This is appears to be a fairly common mistake for beginners who want to build larger things from the system configurations, such as NixOps networks, etc. Further explanation seems appropriate.
Diffstat (limited to 'lib/tests')
-rwxr-xr-x | lib/tests/modules.sh | 1 | ||||
-rw-r--r-- | lib/tests/modules/import-configuration.nix | 12 |
2 files changed, 13 insertions, 0 deletions
diff --git a/lib/tests/modules.sh b/lib/tests/modules.sh index 4da0cb38f685a..d12e503c4b1d7 100755 --- a/lib/tests/modules.sh +++ b/lib/tests/modules.sh @@ -368,6 +368,7 @@ checkConfigError 'The module foo.nix#darwinModules.default was imported into nix # _type check checkConfigError 'Could not load a value as a module, because it is of type "flake", in file .*/module-imports-_type-check.nix' config.ok.config ./module-imports-_type-check.nix checkConfigOutput '^true$' "$@" config.enable ./declare-enable.nix ./define-enable-with-top-level-mkIf.nix +checkConfigError 'Could not load a value as a module, because it is of type "configuration", in file .*/import-configuration.nix' config ./import-configuration.nix # doRename works when `warnings` does not exist. checkConfigOutput '^1234$' config.c.d.e ./doRename-basic.nix diff --git a/lib/tests/modules/import-configuration.nix b/lib/tests/modules/import-configuration.nix new file mode 100644 index 0000000000000..a2a32bbee4caf --- /dev/null +++ b/lib/tests/modules/import-configuration.nix @@ -0,0 +1,12 @@ +{ lib, ... }: +let + myconf = lib.evalModules { modules = [ { } ]; }; +in +{ + imports = [ + # We can't do this. A configuration is not equal to its set of a modules. + # Equating those would lead to a mess, as specialArgs, anonymous modules + # that can't be deduplicated, and possibly more come into play. + myconf + ]; +} |