2024-03-06 12:05:01 +00:00
|
|
|
use anyhow::Result;
|
2024-03-05 11:35:25 +00:00
|
|
|
use clap::Parser;
|
|
|
|
use env_logger::Env;
|
2024-04-21 21:00:32 -07:00
|
|
|
use kratad::command::DaemonCommand;
|
2024-03-23 04:36:21 +00:00
|
|
|
use log::LevelFilter;
|
2024-04-21 21:00:32 -07:00
|
|
|
use std::sync::{atomic::AtomicBool, Arc};
|
2024-03-05 11:35:25 +00:00
|
|
|
|
|
|
|
#[tokio::main(flavor = "multi_thread", worker_threads = 10)]
|
|
|
|
async fn main() -> Result<()> {
|
2024-03-23 04:36:21 +00:00
|
|
|
env_logger::Builder::from_env(Env::default().default_filter_or("info"))
|
|
|
|
.filter(Some("backhand::filesystem::writer"), LevelFilter::Warn)
|
|
|
|
.init();
|
2024-03-05 23:10:31 +00:00
|
|
|
mask_sighup()?;
|
2024-03-05 11:35:25 +00:00
|
|
|
|
2024-04-21 21:00:32 -07:00
|
|
|
let command = DaemonCommand::parse();
|
|
|
|
command.run().await
|
2024-03-05 11:35:25 +00:00
|
|
|
}
|
2024-03-05 23:10:31 +00:00
|
|
|
|
|
|
|
fn mask_sighup() -> Result<()> {
|
|
|
|
let flag = Arc::new(AtomicBool::new(false));
|
|
|
|
signal_hook::flag::register(signal_hook::consts::SIGHUP, flag)?;
|
|
|
|
Ok(())
|
|
|
|
}
|