From 603955b84833ea20236f57c38755e68468da2002 Mon Sep 17 00:00:00 2001 From: Jiahao XU Date: Tue, 7 Jun 2022 15:11:04 +1000 Subject: [PATCH] Support for checking multi-targets Signed-off-by: Jiahao XU --- src/main.rs | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/src/main.rs b/src/main.rs index a9479a2d..8cdf4e72 100644 --- a/src/main.rs +++ b/src/main.rs @@ -217,18 +217,24 @@ async fn entry() -> Result<()> { .join(format!("pkg-{}.{}", opts.name, meta.pkg_fmt)); debug!("Using temporary download path: {}", pkg_path.display()); - let fetcher_data = Data { - name: package.name.clone(), - target: opts.target.clone(), - version: package.version.clone(), - repo: package.repository.clone(), - meta: meta.clone(), - }; + let fetcher_data: Vec<_> = detect_targets() + .await + .into_iter() + .map(|target| Data { + name: package.name.clone(), + target: target.into(), + version: package.version.clone(), + repo: package.repository.clone(), + meta: meta.clone(), + }) + .collect(); // Try github releases, then quickinstall let mut fetchers = MultiFetcher::default(); - fetchers.add(GhCrateMeta::new(&fetcher_data).await); - fetchers.add(QuickInstall::new(&fetcher_data).await); + for data in &fetcher_data { + fetchers.add(GhCrateMeta::new(data).await); + fetchers.add(QuickInstall::new(data).await); + } match fetchers.first_available().await { Some(fetcher) => {