about summary refs log tree commit diff
path: root/tvix/eval/src/main.rs
diff options
context:
space:
mode:
authorVincent Ambo <mail@tazj.in>2022-08-12T15·28+0300
committertazjin <tazjin@tvl.su>2022-08-28T11·02+0000
commit6fe5e2d75257504f0321e2e98b6fb675b716fe25 (patch)
treebf0549b862e8bdf25dda9e9b3aa05c16889b0ba5 /tvix/eval/src/main.rs
parent1f8aad0ab41eec3db2e892bf80b6b76d54d36bbc (diff)
feat(tvix/eval): resolve relative path literals r/4519
Resolves relative paths (e.g. `./foo`) either relative to the location
of the Nix file, or relative to the working directory if none is
supplied.

Change-Id: I70ec574657b221b458015117a004b6e4a9c25a30
Reviewed-on: https://cl.tvl.fyi/c/depot/+/6185
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
Diffstat (limited to 'tvix/eval/src/main.rs')
-rw-r--r--tvix/eval/src/main.rs11
1 files changed, 8 insertions, 3 deletions
diff --git a/tvix/eval/src/main.rs b/tvix/eval/src/main.rs
index 0c4d082783e2..3d0c29688e6d 100644
--- a/tvix/eval/src/main.rs
+++ b/tvix/eval/src/main.rs
@@ -1,4 +1,8 @@
-use std::{env, fs, path::PathBuf, process};
+use std::{
+    env, fs,
+    path::{Path, PathBuf},
+    process,
+};
 
 use rustyline::{error::ReadlineError, Editor};
 
@@ -18,8 +22,9 @@ fn main() {
 
 fn run_file(file: &str) {
     let contents = fs::read_to_string(file).expect("failed to read the input file");
+    let path = Path::new(file).to_owned();
 
-    match tvix_eval::interpret(&contents) {
+    match tvix_eval::interpret(&contents, Some(path)) {
         Ok(result) => println!("=> {} :: {}", result, result.type_of()),
         Err(err) => eprintln!("{}", err),
     }
@@ -53,7 +58,7 @@ fn run_prompt() {
                     continue;
                 }
 
-                match tvix_eval::interpret(&line) {
+                match tvix_eval::interpret(&line, None) {
                     Ok(result) => {
                         println!("=> {} :: {}", result, result.type_of());
                         rl.add_history_entry(line);