From 4151ab7aab939a12721a0f4207c87b5c09ace339 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Tue, 8 Mar 2022 20:17:31 -0500 Subject: save the history on shell exit --- src/shell/history/mod.rs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'src/shell/history/mod.rs') diff --git a/src/shell/history/mod.rs b/src/shell/history/mod.rs index ad6ca44..91149c1 100644 --- a/src/shell/history/mod.rs +++ b/src/shell/history/mod.rs @@ -123,6 +123,27 @@ impl History { } } + pub async fn save(&self) { + // TODO: we'll probably want some amount of flock or something here + let mut fh = tokio::fs::OpenOptions::new() + .append(true) + .open(crate::dirs::history_file()) + .await + .unwrap(); + for entry in &self.entries { + fh.write_all( + format!( + ": {}:0;{}\n", + entry.start_time().unix_timestamp(), + entry.cmd() + ) + .as_bytes(), + ) + .await + .unwrap(); + } + } + fn visible( &self, repl_lines: usize, -- cgit v1.2.3-54-g00ecf