From 0e29fa02995273bfd803aea48773cbe52a7366ed Mon Sep 17 00:00:00 2001 From: Shav Kinderlehrer Date: Sat, 23 Mar 2024 13:08:14 -0400 Subject: Rework actions and events + start statusbar --- src/tui.rs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'src/tui.rs') diff --git a/src/tui.rs b/src/tui.rs index 930f6e7..911a50d 100644 --- a/src/tui.rs +++ b/src/tui.rs @@ -10,6 +10,7 @@ use crossterm::{event, execute}; use ratatui::prelude::{CrosstermBackend, Terminal}; use std::io; use std::io::{stdout, Stdout}; +use std::panic; pub type Tui = Terminal>; @@ -41,3 +42,21 @@ pub fn get_event(tick: std::time::Duration) -> io::Result> { Ok(None) } + +pub fn install_hooks() -> eyre::Result<()> { + let hook_builder = color_eyre::config::HookBuilder::default(); + let (panic_hook, eyre_hook) = hook_builder.into_hooks(); + + let panic_hook = panic_hook.into_panic_hook(); + panic::set_hook(Box::new(move |panic_info| { + restore().unwrap(); + panic_hook(panic_info); + })); + + let eyre_hook = eyre_hook.into_eyre_hook(); + eyre::set_hook(Box::new(move |error| { + restore().unwrap(); + eyre_hook(error) + }))?; + Ok(()) +} -- cgit v1.2.3