laziergit 1.0.0

an even lazier git implementation than lazygit
mod app;
mod diff;
mod field;
mod git;
mod input;
mod status;
mod theme;
mod tree;
mod ui;

use app::App;
use color_eyre::Result;
use crossterm::event::{self, Event, KeyEventKind};
use ratatui::DefaultTerminal;

fn main() -> Result<()> {
    color_eyre::install()?;
    let mut terminal = ratatui::init();
    let result = run(&mut terminal);
    ratatui::restore();
    result
}

fn run(terminal: &mut DefaultTerminal) -> Result<()> {
    let mut app = App::new();
    while !app.should_quit() {
        terminal.draw(|f| ui::draw(f, &app))?;
        if let Event::Key(key) = event::read()?
            && key.kind == KeyEventKind::Press
        {
            app.perform(input::map(&app, key));
        }
    }
    Ok(())
}