mod state;
mod ui;
use state::State;
use std::path::PathBuf;
fn main() -> eframe::Result<()> {
let project = std::env::args()
.nth(1)
.map(PathBuf::from)
.unwrap_or_else(|| PathBuf::from("."));
let mut state = match State::load(&project) {
Ok(state) => state,
Err(e) => {
eprintln!("ostraka-app: {}: {e}", project.display());
std::process::exit(1);
}
};
let options = eframe::NativeOptions {
viewport: egui::ViewportBuilder::default()
.with_inner_size([1100.0, 720.0])
.with_min_inner_size([720.0, 420.0])
.with_title("Ostraka"),
..Default::default()
};
eframe::run_ui_native("Ostraka", options, move |ui, _frame| {
ui::draw(ui, &mut state);
})
}