use std::path::PathBuf;
use anyhow::Result;
use clap::Parser;
use nornir::viz::UrdrThreadsApp;
#[derive(Parser)]
#[command(name = "urdr-threads")]
#[command(about = "Time-travel visualizer for the Urðr warehouse", long_about = None)]
struct Cli {
#[arg(long, default_value = "/tmp/nornir-demo-warehouse")]
warehouse: PathBuf,
#[arg(long, default_value = "norninr-demo")]
workspace: String,
}
fn main() -> Result<()> {
let cli = Cli::parse();
let native_options = eframe::NativeOptions {
viewport: eframe::egui::ViewportBuilder::default()
.with_inner_size([1200.0, 700.0])
.with_title("Urðr Threads — nornir time machine"),
..Default::default()
};
eframe::run_native(
"Urðr Threads",
native_options,
Box::new(move |_cc| Ok(Box::new(UrdrThreadsApp::new(cli.warehouse, cli.workspace)))),
)
.map_err(|e| anyhow::anyhow!("eframe error: {e}"))?;
Ok(())
}