39 lines
885 B
Rust
39 lines
885 B
Rust
use crate::{
|
|
gui::{update, view},
|
|
mcp::FossilEditor,
|
|
};
|
|
use iced::Executor;
|
|
use rmcp::{ServiceExt, transport::stdio};
|
|
use tokio::runtime::Runtime;
|
|
use tracing_subscriber::{self, EnvFilter};
|
|
|
|
mod fossil;
|
|
mod gui;
|
|
mod matcher;
|
|
mod mcp;
|
|
|
|
fn main() -> iced::Result {
|
|
tracing_subscriber::fmt()
|
|
.with_env_filter(EnvFilter::from_default_env().add_directive(tracing::Level::DEBUG.into()))
|
|
.with_writer(std::io::stderr)
|
|
.with_ansi(false)
|
|
.init();
|
|
|
|
let rt = Runtime::new().unwrap();
|
|
|
|
let editor = FossilEditor::new();
|
|
rt.spawn(async {
|
|
let service = editor
|
|
.serve(stdio())
|
|
.await
|
|
.inspect_err(|e| {
|
|
tracing::error!("serving error: {:?}", e);
|
|
})
|
|
.unwrap();
|
|
|
|
service.waiting().await.unwrap();
|
|
});
|
|
|
|
iced::run("A cool counter", update, view)
|
|
}
|