lix/doc/manual
Qyriad 14bf54bd39 trace which part of foo.bar.baz errors
Turns errors like:

let
  somepkg.src = throw "invalid foobar";
in somepkg.src.meta

error:
       … while evaluating the attribute 'src.meta'
         at «string»:2:3:
            1| let
            2|   somepkg.src = throw "invalid foobar";
             |   ^
            3| in somepkg.src.meta

       … while calling the 'throw' builtin
         at «string»:2:17:
            1| let
            2|   somepkg.src = throw "invalid foobar";
             |                 ^
            3| in somepkg.src.meta

       error: invalid foobar

into errors like:

let
  somepkg.src = throw "invalid foobar";
in somepkg.src.meta

error:
       … while evaluating the attribute 'src.meta'
         at «string»:2:3:
            1| let
            2|   somepkg.src = throw "invalid foobar";
             |   ^
            3| in somepkg.src.meta

       … while evaluating 'somepkg.src' to select 'meta' on it
         at «string»:3:4:
            2|   somepkg.src = throw "invalid foobar";
            3| in somepkg.src.meta
             |    ^

       … while calling the 'throw' builtin
         at «string»:2:17:
            1| let
            2|   somepkg.src = throw "invalid foobar";
             |                 ^
            3| in somepkg.src.meta

       error: invalid foobar

And for type errors, from:

let
  somepkg.src = "I'm not an attrset";
in somepkg.src.meta

error:
       … while evaluating the attribute 'src.meta'
         at «string»:2:3:
            1| let
            2|   somepkg.src = "I'm not an attrset";
             |   ^
            3| in somepkg.src.meta

       … while selecting an attribute
         at «string»:3:4:
            2|   somepkg.src = "I'm not an attrset";
            3| in somepkg.src.meta
             |    ^

       error: expected a set but found a string: "I'm not an attrset"

into:

let
  somepkg.src = "I'm not an attrset";
in somepkg.src.meta

error:
       … while evaluating the attribute 'src.meta'
         at «string»:2:3:
            1| let
            2|   somepkg.src = "I'm not an attrset";
             |   ^
            3| in somepkg.src.meta

       … while selecting 'meta' on 'somepkg.src'
         at «string»:3:4:
            2|   somepkg.src = "I'm not an attrset";
            3| in somepkg.src.meta
             |    ^

       error: expected a set but found a string: "I'm not an attrset"

For the low price of an enumerate() and a lambda you too can have the
incorrect line of code actually show up in the trace!

Change-Id: Ic1491c86e33c167891bdac9adad6224784760bd6
2024-07-04 17:42:35 -06:00
..
rl-next trace which part of foo.bar.baz errors 2024-07-04 17:42:35 -06:00
src store: delete obsolete lsof-disabling code 2024-06-27 22:53:36 -07:00
theme Add pre-commit checks 2024-03-29 22:57:40 -07:00
anchors.jq Add pre-commit checks 2024-03-29 22:57:40 -07:00
book.toml docs: enable non-default TOC folding 2024-05-30 00:23:01 +00:00
change-authors.yml Reject fully-qualified URLs in 'from' argument of nix registry add 2024-06-29 05:11:31 +00:00
custom.css disallow selecting shell prompt in code samples 2022-12-05 11:01:46 +01:00
generate-builtin-constants.nix Format Nix code with nixfmt 2024-04-08 13:00:00 -07:00
generate-builtins.nix Format Nix code with nixfmt 2024-04-08 13:00:00 -07:00
generate-deps.py docs: redo content generation for mdbook and manual 2024-04-11 13:32:06 +00:00
generate-manpage.nix docs: don't compute SUMMARY.md during build 2024-04-09 02:09:36 +00:00
generate-xp-features-shortlist.nix Format Nix code with nixfmt 2024-04-08 13:00:00 -07:00
generate-xp-features.nix Format Nix code with nixfmt 2024-04-08 13:00:00 -07:00
json-to-tree.py docs: generalize manpage generation script as json-to-tree.py 2024-04-10 15:04:34 +02:00
meson.build build: correctly propagate changes to Lix source to manual 2024-06-16 03:43:17 +00:00
process-includes.sh change shebangs of all .sh scripts to bash 2024-06-24 14:00:43 -07:00
quote-literals.xsl Generate release notes again 2014-03-12 14:24:29 +01:00
rclone.conf doc: add a script to upload the nightly manual manually 2024-05-14 14:28:01 -07:00
redirects.js libstore/build: always enable seccomp filtering and no-new-privileges 2024-05-24 21:19:29 +00:00
render-manpage.sh change shebangs of all .sh scripts to bash 2024-06-24 14:00:43 -07:00
substitute.py docs: redo content generation for mdbook and manual 2024-04-11 13:32:06 +00:00
utils.nix Format Nix code with nixfmt 2024-04-08 13:00:00 -07:00