etwin_cli 0.12.5

Command Line Interface for Eternaltwin
Documentation
use clap::Parser;
use etwin_cli::cmd::dump;
use std::error::Error;
use std::process::exit;

#[tokio::main]
async fn main() {
  let args: dump::Args = dump::Args::parse();

  let res = dump::run(&args).await;

  if let Err(e) = res {
    eprintln!("ERROR: {}", &e);
    let mut source: Option<&dyn Error> = e.source();
    for _ in 0..100 {
      match source {
        Some(src) => {
          eprintln!("-> {}", src);
          source = src.source();
        }
        None => break,
      }
    }
    exit(1)
  }
}