feat(tvix/cli): implement NixCompatIO helper type

This type allows for temporarily compatibility with the C++ Nix store,
specifically (for now) it gives us the store directory used by Nix and
imports files the same way.

Change-Id: I4767794ef2863eba49661315c63c4e17de946d60
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7587
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
This commit is contained in:
Vincent Ambo 2022-12-13 20:17:00 +03:00 committed by tazjin
parent 4714f8b939
commit ea7d63e177
6 changed files with 92 additions and 2 deletions

View file

@ -1,3 +1,5 @@
mod nix_compat;
use std::{fs, path::PathBuf};
use clap::Parser;
@ -39,7 +41,7 @@ struct Args {
/// evaluation succeeded.
fn interpret(code: &str, path: Option<PathBuf>, args: &Args) -> bool {
let mut eval = tvix_eval::Evaluation::new(code, path);
eval.io_handle = Box::new(tvix_eval::StdIO);
eval.io_handle = Box::new(nix_compat::NixCompatIO::new());
eval.nix_path = args.nix_search_path.clone();
let source_map = eval.source_map();