diff options
Diffstat (limited to 'tvix/eval/src/builtins/impure.rs')
-rw-r--r-- | tvix/eval/src/builtins/impure.rs | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/tvix/eval/src/builtins/impure.rs b/tvix/eval/src/builtins/impure.rs index 01a09393720d..904706dc65d9 100644 --- a/tvix/eval/src/builtins/impure.rs +++ b/tvix/eval/src/builtins/impure.rs @@ -4,7 +4,7 @@ use smol_str::SmolStr; use std::{ collections::BTreeMap, env, - rc::Weak, + rc::{Rc, Weak}, time::{SystemTime, UNIX_EPOCH}, }; @@ -74,6 +74,16 @@ pub(super) fn builtins() -> BTreeMap<&'static str, Value> { .map(|b| (b.name(), Value::Builtin(b))) .collect(); + map.insert( + "storeDir", + Value::Thunk(Thunk::new_suspended_native(Rc::new(Box::new( + |vm: &mut VM| match vm.io().store_dir() { + None => Ok(Value::Null), + Some(dir) => Ok(Value::String(dir.into())), + }, + )))), + ); + // currentTime pins the time at which evaluation was started { let seconds = match SystemTime::now().duration_since(UNIX_EPOCH) { |