github-bin-downloader 0.1.2

Download binary for your OS from Github.
Documentation
use github_bin_downloader::{cli, ghapi, show_error, utils, GBDResult};

#[tokio::main]
async fn main() -> GBDResult<()> {
    let opt = cli::run_cli();
    let mut repo = ghapi::RepoInfo::from_url(&opt.url).await?;
    if opt.latest {
        repo.get_latest_release().await?;
        if opt.list {
            cli::display_all_options(&repo.releases)
                .await?
                .download_release()
                .await?;
            return Ok(());
        }
        match utils::compare_two_vector(
            &repo.search_releases_for_os().await?,
            &repo.search_releases_for_arch().await?,
        ) {
            Some(releases) => {
                cli::display_all_options(&releases).await?
                .download_release().await?;
                return Ok(());
            },
            None => show_error!("Cannot find a release for your OS and Arch\n Use --list flag to list all available options"),
        }
    } else {
        repo.get_latest_stable_release().await?;
        if opt.list {
            cli::display_all_options(&repo.releases)
                .await?
                .download_release()
                .await?;
            return Ok(());
        }
        match utils::compare_two_vector(
            &repo.search_releases_for_os().await?,
            &repo.search_releases_for_arch().await?,
        ) {
            Some(releases) => {
                cli::display_all_options(&releases).await?
                .download_release().await?;
                return Ok(());
            },
            None => show_error!("Cannot find a release for your OS and Arch\n Use --list flag to list all available options"),
        }
    }
    Ok(())
}