mod action_menu;
mod app;
mod catalog;
mod launcher;
mod rom_entry;
mod rom_list;
mod terminal;
use app::App;
use terminal::TerminalHandle;
pub fn run_tui(
search_paths: &[String],
rebuild_catalog: bool,
include_unofficial: bool,
) -> Result<(), Box<dyn std::error::Error>> {
let (entries, catalog_err) =
match catalog::load_catalog(search_paths, rebuild_catalog, include_unofficial) {
Ok(entries) => (entries, None),
Err(e) => (vec![], Some(e)),
};
let mut terminal = TerminalHandle::new()?;
let mut app = App::new(entries);
if let Some(err) = catalog_err {
app = app.with_catalog_error(err);
}
app.run(&mut terminal)?;
Ok(())
}