about summary refs log tree commit diff
diff options
context:
space:
mode:
authorVincent Ambo <mail@tazj.in>2022-08-14T17·08+0300
committertazjin <tazjin@tvl.su>2022-08-31T22·10+0000
commit7db4f8d7747cf1c4a40fdf399a36aa9d59d92792 (patch)
treeff645938b69f31108258c874a9d6b3bc88bf02fb
parent049ec229437a8c83196c96c83779ece6de971b0c (diff)
fix(tvix/eval): gently attempt to create state dir r/4547
If the directory in which REPL history is stored does not exist,
gently try to create it, but do not raise an error if it doesn't work.

We may want to warn about it, but in general this sort of
non-essential feature should not cause a hard failure.

Change-Id: If4fe8db0c7893c39627efe72c9cd9ebf7ed63f04
Reviewed-on: https://cl.tvl.fyi/c/depot/+/6213
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
-rw-r--r--tvix/eval/src/main.rs4
1 files changed, 3 insertions, 1 deletions
diff --git a/tvix/eval/src/main.rs b/tvix/eval/src/main.rs
index 55cc643dcedb..4d0f12337154 100644
--- a/tvix/eval/src/main.rs
+++ b/tvix/eval/src/main.rs
@@ -42,10 +42,12 @@ fn run_prompt() {
     let mut rl = Editor::<()>::new().expect("should be able to launch rustyline");
 
     let history_path = match state_dir() {
+        // Attempt to set up these paths, but do not hard fail if it
+        // doesn't work.
         Some(mut path) => {
+            std::fs::create_dir_all(&path).ok();
             path.push("history.txt");
             rl.load_history(&path).ok();
-
             Some(path)
         }