krata/daemon/bin/daemon.rs

28 lines
808 B
Rust
Raw Normal View History

use anyhow::{anyhow, Result};
use clap::Parser;
use env_logger::Env;
use kratad::{runtime::Runtime, Daemon};
use tokio_listener::ListenerAddressLFlag;
#[derive(Parser)]
struct Args {
#[clap(flatten)]
listener: ListenerAddressLFlag,
#[arg(short, long, default_value = "/var/lib/krata")]
store: String,
}
#[tokio::main(flavor = "multi_thread", worker_threads = 10)]
async fn main() -> Result<()> {
env_logger::Builder::from_env(Env::default().default_filter_or("warn")).init();
let args = Args::parse();
let Some(listener) = args.listener.bind().await else {
return Err(anyhow!("no listener specified"));
};
let runtime = Runtime::new(args.store.clone()).await?;
let mut daemon = Daemon::new(runtime).await?;
daemon.listen(listener?).await?;
Ok(())
}