summary refs log tree commit diff
path: root/lib/modules.nix
diff options
context:
space:
mode:
authorErik Arvstedt <erik.arvstedt@gmail.com>2022-09-05 12:11:43 +0200
committerErik Arvstedt <erik.arvstedt@gmail.com>2022-09-05 12:11:43 +0200
commit9f22df9a7f575a172bfd222e9c01296bc9df3e6d (patch)
treecfe27bde4a50fc18019749a5a40560d98fd1f248 /lib/modules.nix
parentfaf9c2b0a746ef13f2eadc4f7766658992db72d6 (diff)
downloadnixpkgs-9f22df9a7f575a172bfd222e9c01296bc9df3e6d.tar
nixpkgs-9f22df9a7f575a172bfd222e9c01296bc9df3e6d.tar.gz
nixpkgs-9f22df9a7f575a172bfd222e9c01296bc9df3e6d.tar.bz2
nixpkgs-9f22df9a7f575a172bfd222e9c01296bc9df3e6d.tar.lz
nixpkgs-9f22df9a7f575a172bfd222e9c01296bc9df3e6d.tar.xz
nixpkgs-9f22df9a7f575a172bfd222e9c01296bc9df3e6d.tar.zst
nixpkgs-9f22df9a7f575a172bfd222e9c01296bc9df3e6d.zip
lib/modules: add `definitionsWithLocations` to evaluated options
This attr provides the location of each definition.

This is particularly useful for introspecting options of type
`attrsOf`. E.g., it allows finding the location of a systemd
service definition by parsing
`options.systemd.services.definitionsWithLocations`.
Diffstat (limited to 'lib/modules.nix')
-rw-r--r--lib/modules.nix1
1 files changed, 1 insertions, 0 deletions
diff --git a/lib/modules.nix b/lib/modules.nix
index d3a7fac82c4..b6751d17f8f 100644
--- a/lib/modules.nix
+++ b/lib/modules.nix
@@ -720,6 +720,7 @@ rec {
         inherit (res.defsFinal') highestPrio;
         definitions = map (def: def.value) res.defsFinal;
         files = map (def: def.file) res.defsFinal;
+        definitionsWithLocations = res.defsFinal;
         inherit (res) isDefined;
         # This allows options to be correctly displayed using `${options.path.to.it}`
         __toString = _: showOption loc;