about summary refs log tree commit diff
path: root/tvix/eval/src/nix_search_path.rs
diff options
context:
space:
mode:
authorsterni <sternenseemann@systemli.org>2022-10-20T22·52+0200
committerclbot <clbot@tvl.fyi>2022-10-21T00·11+0000
commit64bb501de1d52ce004d530d1fc15392537ee2beb (patch)
tree40ffd435406f3235cbb323e98cfcd2ad8d02084a /tvix/eval/src/nix_search_path.rs
parent5753fc14f5a24b2c4d5f4c76ed22d28a1be67c2a (diff)
fix(tvix): distinguish search- and relative path resolution errors r/5172
Failures to resolve a nix search path lookup in angle brackets can be
caught using tryEval (if it reaches the runtime). Resolving relative
paths (either to the current directory or the current user's home) can
never be caught, even if they happen inside a thunk at runtime (which is
currently the case for home-relative paths).

Change-Id: I7f73221df66d82a381dd4063358906257826995a
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7025
Autosubmit: sterni <sternenseemann@systemli.org>
Reviewed-by: Adam Joseph <adam@westernsemico.com>
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
Diffstat (limited to 'tvix/eval/src/nix_search_path.rs')
-rw-r--r--tvix/eval/src/nix_search_path.rs4
1 files changed, 2 insertions, 2 deletions
diff --git a/tvix/eval/src/nix_search_path.rs b/tvix/eval/src/nix_search_path.rs
index b19c5c1dd5..8295aaa0ef 100644
--- a/tvix/eval/src/nix_search_path.rs
+++ b/tvix/eval/src/nix_search_path.rs
@@ -103,7 +103,7 @@ impl NixSearchPath {
                 return Ok(p);
             }
         }
-        Err(ErrorKind::PathResolution(format!(
+        Err(ErrorKind::NixPathResolution(format!(
             "path '{}' was not found in the Nix search path",
             path.display()
         )))
@@ -178,7 +178,7 @@ mod tests {
             let nix_search_path = NixSearchPath::from_str("./.").unwrap();
             let err = nix_search_path.resolve("nope").unwrap_err();
             assert!(
-                matches!(err, ErrorKind::PathResolution(..)),
+                matches!(err, ErrorKind::NixPathResolution(..)),
                 "err = {err:?}"
             );
         }