summary refs log tree commit diff
path: root/nixos/lib/eval-config.nix
diff options
context:
space:
mode:
authorNaïm Favier <n@monade.li>2021-12-17 15:30:32 +0100
committerNaïm Favier <n@monade.li>2022-01-27 22:13:35 +0100
commit5ab62e17b51087d3ee38684c3911354ec70f5f0b (patch)
treec0780bc56c5e703e529da0495567d8bab39d15f7 /nixos/lib/eval-config.nix
parent5a07097772e18ac68600038dbcafda2310227190 (diff)
downloadnixpkgs-5ab62e17b51087d3ee38684c3911354ec70f5f0b.tar
nixpkgs-5ab62e17b51087d3ee38684c3911354ec70f5f0b.tar.gz
nixpkgs-5ab62e17b51087d3ee38684c3911354ec70f5f0b.tar.bz2
nixpkgs-5ab62e17b51087d3ee38684c3911354ec70f5f0b.tar.lz
nixpkgs-5ab62e17b51087d3ee38684c3911354ec70f5f0b.tar.xz
nixpkgs-5ab62e17b51087d3ee38684c3911354ec70f5f0b.tar.zst
nixpkgs-5ab62e17b51087d3ee38684c3911354ec70f5f0b.zip
nixos: move default module location logic to `eval-config.nix`
Diffstat (limited to 'nixos/lib/eval-config.nix')
-rw-r--r--nixos/lib/eval-config.nix14
1 files changed, 13 insertions, 1 deletions
diff --git a/nixos/lib/eval-config.nix b/nixos/lib/eval-config.nix
index e3eb88a60eb..2daaa8a1186 100644
--- a/nixos/lib/eval-config.nix
+++ b/nixos/lib/eval-config.nix
@@ -21,6 +21,7 @@ evalConfigArgs@
 , # !!! See comment about args in lib/modules.nix
   specialArgs ? {}
 , modules
+, modulesLocation ? (builtins.unsafeGetAttrPos "modules" evalConfigArgs).file or null
 , # !!! See comment about check in lib/modules.nix
   check ? true
 , prefix ? []
@@ -74,7 +75,18 @@ let
         _module.check = lib.mkDefault check;
       };
     };
-  allUserModules = modules ++ legacyModules;
+
+  allUserModules =
+    let
+      # Add the invoking file (or specified modulesLocation) as error message location
+      # for modules that don't have their own locations; presumably inline modules.
+      locatedModules =
+        if modulesLocation == null then
+          modules
+        else
+          map (lib.setDefaultModuleLocation modulesLocation) modules;
+    in
+      locatedModules ++ legacyModules;
 
   noUserModules = evalModulesMinimal ({
     inherit prefix specialArgs;