mod ui;
use clap::Parser;
use mf2::ratatui::{Theme, set_theme};
use ratatui::crossterm::event::{self, Event, KeyCode};
use ratatui::style::Style;
mf2::include_generated!();
#[derive(Parser)]
struct Args {
#[arg(long)]
lang: Option<Locale>,
}
fn main() -> std::io::Result<()> {
let args = Args::parse();
install();
if let Some(lang) = args.lang {
set_locale(lang);
}
set_theme(
Theme::default()
.style(markup::KEY, Style::new().bold().yellow())
.style(markup::HOST, Style::new().underlined())
.style(markup::WARN, Style::new().red()),
);
let trace = ui::Trace::sample();
ratatui::run(|terminal| {
loop {
terminal.draw(|frame| ui::draw(frame, &trace))?;
if let Event::Key(key) = event::read()? {
match key.code {
KeyCode::Char('1') => set_locale(Locale::En),
KeyCode::Char('2') => set_locale(Locale::Fr),
KeyCode::Char('q') => return Ok(()),
_ => {}
}
}
}
})
}