From ec8519d75ae0d4ab096ae56b158889fe4e459c41 Mon Sep 17 00:00:00 2001 From: alex-ds13 <145657253+alex-ds13@users.noreply.github.com> Date: Fri, 31 Jan 2025 15:10:53 +0000 Subject: [PATCH] fix(wm): don't panic if state isn't up to date This commit makes sure that if the state on file isn't up to date with the expected `State` struct (maybe after an update) it doesn't panic komorebi entirely, instead it ignores the state and continues with a clean state. --- komorebi/src/main.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/komorebi/src/main.rs b/komorebi/src/main.rs index 169bdd7f..b8ad0e0e 100644 --- a/komorebi/src/main.rs +++ b/komorebi/src/main.rs @@ -268,8 +268,14 @@ fn main() -> Result<()> { let dumped_state = temp_dir().join("komorebi.state.json"); if !opts.clean_state && dumped_state.is_file() { - let state: State = serde_json::from_str(&std::fs::read_to_string(&dumped_state)?)?; - wm.lock().apply_state(state); + if let Ok(state) = serde_json::from_str(&std::fs::read_to_string(&dumped_state)?) { + wm.lock().apply_state(state); + } else { + tracing::warn!( + "cannot apply state from {}; state struct is not up to date", + dumped_state.display() + ); + } } wm.lock().retile_all(false)?;