diff --git a/src/binstall.rs b/src/binstall.rs index 57a83e13..02e608c8 100644 --- a/src/binstall.rs +++ b/src/binstall.rs @@ -1,6 +1,6 @@ use std::path::PathBuf; -use crate::PkgOverride; +use crate::{DesiredTargets, PkgOverride}; mod resolve; pub use resolve::*; @@ -14,4 +14,5 @@ pub struct Options { pub version: Option, pub manifest_path: Option, pub cli_overrides: PkgOverride, + pub desired_targets: DesiredTargets, } diff --git a/src/binstall/install.rs b/src/binstall/install.rs index 6c1830ea..c1b78fc3 100644 --- a/src/binstall/install.rs +++ b/src/binstall/install.rs @@ -11,7 +11,6 @@ use crate::{bins, fetchers::Fetcher, *}; pub async fn install( resolution: Resolution, opts: Arc, - desired_targets: DesiredTargets, jobserver_client: LazyJobserverClient, ) -> Result<()> { match resolution { @@ -32,7 +31,7 @@ pub async fn install( install_from_package(fetcher, opts, cvs, version, bin_path, bin_files).await } Resolution::InstallFromSource { package } => { - let desired_targets = desired_targets.get().await; + let desired_targets = opts.desired_targets.get().await; let target = desired_targets .first() .ok_or_else(|| miette!("No viable targets found, try with `--targets`"))?; diff --git a/src/binstall/resolve.rs b/src/binstall/resolve.rs index 9e77490e..f2b4f8c6 100644 --- a/src/binstall/resolve.rs +++ b/src/binstall/resolve.rs @@ -75,7 +75,6 @@ impl Resolution { pub async fn resolve( opts: Arc, crate_name: CrateName, - desired_targets: DesiredTargets, temp_dir: Arc, install_path: Arc, client: Client, @@ -123,7 +122,7 @@ pub async fn resolve( let mut fetchers = MultiFetcher::default(); - let desired_targets = desired_targets.get().await; + let desired_targets = opts.desired_targets.get().await; for target in desired_targets { debug!("Building metadata for target: {target}"); diff --git a/src/main.rs b/src/main.rs index 4f90b51c..31daa6fa 100644 --- a/src/main.rs +++ b/src/main.rs @@ -266,6 +266,7 @@ async fn entry(jobserver_client: LazyJobserverClient) -> Result<()> { version: opts.version.take(), manifest_path: opts.manifest_path.take(), cli_overrides, + desired_targets, }); let tasks: Vec<_> = if !opts.dry_run && !opts.no_confirm { @@ -276,7 +277,6 @@ async fn entry(jobserver_client: LazyJobserverClient) -> Result<()> { tokio::spawn(binstall::resolve( binstall_opts.clone(), crate_name, - desired_targets.clone(), temp_dir_path.clone(), install_path.clone(), client.clone(), @@ -300,7 +300,6 @@ async fn entry(jobserver_client: LazyJobserverClient) -> Result<()> { tokio::spawn(binstall::install( resolution, binstall_opts.clone(), - desired_targets.clone(), jobserver_client.clone(), )) }) @@ -312,9 +311,7 @@ async fn entry(jobserver_client: LazyJobserverClient) -> Result<()> { .map(|crate_name| { let opts = binstall_opts.clone(); let temp_dir_path = temp_dir_path.clone(); - let desired_target = desired_targets.clone(); let jobserver_client = jobserver_client.clone(); - let desired_targets = desired_targets.clone(); let client = client.clone(); let crates_io_api_client = crates_io_api_client.clone(); let install_path = install_path.clone(); @@ -323,7 +320,6 @@ async fn entry(jobserver_client: LazyJobserverClient) -> Result<()> { let resolution = binstall::resolve( opts.clone(), crate_name, - desired_targets.clone(), temp_dir_path, install_path, client, @@ -331,7 +327,7 @@ async fn entry(jobserver_client: LazyJobserverClient) -> Result<()> { ) .await?; - binstall::install(resolution, opts, desired_target, jobserver_client).await + binstall::install(resolution, opts, jobserver_client).await }) }) .collect()