feat(tvix/eval): resolve relative path literals
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>
This commit is contained in:
parent
1f8aad0ab4
commit
6fe5e2d752
4 changed files with 37 additions and 10 deletions
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue