35 lines
600 B
Rust
35 lines
600 B
Rust
#![allow(dead_code)]
|
|
//#![allow(unused_imports)]
|
|
//#![allow(unused_variables)]
|
|
|
|
use anyhow::Result;
|
|
use clap::Parser;
|
|
|
|
mod commands;
|
|
mod config;
|
|
mod tags;
|
|
mod trees;
|
|
mod versions;
|
|
|
|
#[tokio::main]
|
|
async fn main() {
|
|
let result = run().await;
|
|
|
|
match result {
|
|
Ok(exit_code) => std::process::exit(exit_code),
|
|
Err(msg) => {
|
|
log::error!("{:?}", msg);
|
|
std::process::exit(1);
|
|
}
|
|
};
|
|
}
|
|
|
|
async fn run() -> Result<i32> {
|
|
// Parse the command and process everything.
|
|
let args = commands::RootCommand::parse();
|
|
|
|
args.run().await?;
|
|
|
|
Ok(0)
|
|
}
|