summaryrefslogtreecommitdiff
path: root/cli/repl.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/repl.rs')
-rw-r--r--cli/repl.rs16
1 files changed, 16 insertions, 0 deletions
diff --git a/cli/repl.rs b/cli/repl.rs
index 7e72b9b10..0cac6c4ea 100644
--- a/cli/repl.rs
+++ b/cli/repl.rs
@@ -76,6 +76,14 @@ impl Repl {
}
fn save_history(&mut self) -> Result<(), ErrBox> {
+ if !self.history_dir_exists() {
+ eprintln!(
+ "Unable to save REPL history: {:?} directory does not exist",
+ self.history_file
+ );
+ return Ok(());
+ }
+
self
.editor
.save_history(&self.history_file.to_str().unwrap())
@@ -86,6 +94,14 @@ impl Repl {
})
}
+ fn history_dir_exists(&self) -> bool {
+ self
+ .history_file
+ .parent()
+ .map(|ref p| p.exists())
+ .unwrap_or(false)
+ }
+
pub fn readline(&mut self, prompt: &str) -> Result<String, ErrBox> {
self
.editor