hkxc/
main.rs

1pub mod args;
2mod logger;
3
4use crate::args::Args;
5use clap::Parser;
6use std::process::exit;
7use tokio::time::Instant;
8
9#[tokio::main]
10async fn main() {
11    let start = Instant::now();
12
13    match crate::args::run(Args::parse()).await {
14        Ok(()) => {
15            let elapsed = start.elapsed();
16            let time = (elapsed.as_secs(), elapsed.subsec_millis());
17            tracing::info!("Elapsed time: {}.{}secs.", time.0, time.1);
18            exit(0);
19        }
20        Err(err) => {
21            tracing::error!("{err}");
22            let err = color_print::cformat!("<red>[Error]\n{err}</red>");
23            eprintln!("{err}");
24            exit(1);
25        }
26    }
27}