From af707ac5a4fba2147f10b6c663d66ace1c54cda0 Mon Sep 17 00:00:00 2001 From: Jamie Quigley Date: Sun, 9 May 2021 20:09:09 +0100 Subject: Fix resh importer crashing on end of file (#92) --- atuin-client/src/import/resh.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/atuin-client/src/import/resh.rs b/atuin-client/src/import/resh.rs index a0378c36..efe5bb5c 100644 --- a/atuin-client/src/import/resh.rs +++ b/atuin-client/src/import/resh.rs @@ -112,8 +112,12 @@ impl Iterator for Resh { Err(e) => return Some(Err(eyre!("failed to read line: {}", e))), // we can skip past things like invalid utf8 } + // .resh_history.json lies about being a json. It is actually a file containing valid json + // on every line. This means that the last line will throw an error, as it is just an EOF. + // Without the special case here, that will crash the importer. let entry = match serde_json::from_str::(&self.strbuf) { Ok(e) => e, + Err(e) if e.is_eof() => return None, Err(e) => { return Some(Err(eyre!( "Invalid entry found in resh_history file: {}", -- cgit v1.2.3