about summary refs log tree commit diff
path: root/nixpkgs/flake.nix
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2021-07-23 09:26:00 +0000
committerAlyssa Ross <hi@alyssa.is>2021-07-23 09:26:00 +0000
commitab63e0bb8dcf2b1bf8d4a26ed360af777b8f241d (patch)
tree504b28a058661f6c1cbb7d3f580020e50367ca7f /nixpkgs/flake.nix
parent55cc63c079f49e81d695a25bc2f5b3902f2bd290 (diff)
parentb09661d41fb93562fd53f31574dbf781b130ac44 (diff)
downloadnixlib-ab63e0bb8dcf2b1bf8d4a26ed360af777b8f241d.tar
nixlib-ab63e0bb8dcf2b1bf8d4a26ed360af777b8f241d.tar.gz
nixlib-ab63e0bb8dcf2b1bf8d4a26ed360af777b8f241d.tar.bz2
nixlib-ab63e0bb8dcf2b1bf8d4a26ed360af777b8f241d.tar.lz
nixlib-ab63e0bb8dcf2b1bf8d4a26ed360af777b8f241d.tar.xz
nixlib-ab63e0bb8dcf2b1bf8d4a26ed360af777b8f241d.tar.zst
nixlib-ab63e0bb8dcf2b1bf8d4a26ed360af777b8f241d.zip
Merge commit 'b09661d41fb93562fd53f31574dbf781b130ac44'
Diffstat (limited to 'nixpkgs/flake.nix')
-rw-r--r--nixpkgs/flake.nix20
1 files changed, 19 insertions, 1 deletions
diff --git a/nixpkgs/flake.nix b/nixpkgs/flake.nix
index 5237cae86f18..ececd26c153c 100644
--- a/nixpkgs/flake.nix
+++ b/nixpkgs/flake.nix
@@ -47,8 +47,26 @@
                       })
                     ];
                   })).config;
+
+                moduleDeclarationFile =
+                  let
+                    # Even though `modules` is a mandatory argument for `nixosSystem`, it doesn't
+                    # mean that the evaluator always keeps track of its position. If there
+                    # are too many levels of indirection, the position gets lost at some point.
+                    intermediatePos = builtins.unsafeGetAttrPos "modules" args;
+                  in
+                    if intermediatePos == null then null else intermediatePos.file;
+
+                # Add the invoking file as error message location for modules
+                # that don't have their own locations; presumably inline modules.
+                addModuleDeclarationFile =
+                  m: if moduleDeclarationFile == null then m else {
+                    _file = moduleDeclarationFile;
+                    imports = [ m ];
+                  };
+
               in
-              modules ++ [
+              map addModuleDeclarationFile modules ++ [
                 {
                   system.nixos.versionSuffix =
                     ".${final.substring 0 8 (self.lastModifiedDate or self.lastModified or "19700101")}.${self.shortRev or "dirty"}";