bitbucket_server_cli 0.4.5

A CLI for cloning and updating entire projects from bitbucket server
Documentation
use bitbucket_server_cli::{cloner::Cloner, completion::gen_completions, types::Opts};
use generic_error::{GenericError, Result};
use structopt::StructOpt;

#[tokio::main]
async fn main() -> std::result::Result<(), Box<dyn std::error::Error>> {
    match act().await {
        Ok(_) => Ok(()),
        Err(GenericError { msg }) => {
            eprintln!("{}", msg);
            std::process::exit(1);
        }
    }
}

async fn act() -> Result<()> {
    let opts: Opts = Opts::from_args();
    match opts {
        Opts::Clone(c) => Cloner::new(c)?.clone_projects_and_users().await,
        Opts::CloneProjects(c) => Cloner::new(c)?.clone_projects().await,
        Opts::CloneUsers(c) => Cloner::new(c)?.clone_users().await,
        Opts::Completions => gen_completions(),
    }
}