chaindexer 0.1.1

Blockchain indexer and query engine
Documentation
use chaindexer::{entrypoint, CliError};
use colored::Colorize;
use log::{debug, error};

#[tokio::main]
async fn main() {
    env_logger::init();
    match entrypoint(std::env::args_os()).await {
        Ok(_) => {
            debug!("exiting CLI...")
        }
        Err(err) => {
            let errmsg_colored = match err {
                CliError::ConfigError { message } => {
                    format!("{}: {}", "Invalid configuration: ".red().bold(), message)
                }
                CliError::ArgError { arg, message } => {
                    format!(
                        "{} ({})",
                        format!("Bad value for {}", arg.cyan()).red().bold(),
                        message
                    )
                }
                CliError::CommandFailed {
                    command,
                    message,
                    err,
                } => {
                    error!("{err:?}");
                    format!(
                        "{}: \n{}",
                        format!("command {} failed", command.cyan()).red().bold(),
                        message
                    )
                }
            };
            println!("{errmsg_colored}");
            std::process::exit(1);
        }
    }
}