From 44e81c7e1a0d9ac4498cca460a5163e2451f7621 Mon Sep 17 00:00:00 2001 From: Jiahao XU Date: Mon, 6 Mar 2023 11:52:28 +1100 Subject: [PATCH] Fix: Pass value of `--roots` to `cargo-install` as `--root` (#860) Pass value of `--roots` to `cargo-install` as `--root` Signed-off-by: Jiahao XU --- crates/bin/src/entry.rs | 5 ++++- crates/binstalk/src/ops.rs | 2 ++ crates/binstalk/src/ops/resolve/resolution.rs | 4 ++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/crates/bin/src/entry.rs b/crates/bin/src/entry.rs index 8673e75f..553fd032 100644 --- a/crates/bin/src/entry.rs +++ b/crates/bin/src/entry.rs @@ -53,8 +53,9 @@ pub async fn install_crates(args: Args, jobserver_client: LazyJobserverClient) - .collect(); // Compute paths + let cargo_root = args.roots; let (install_path, mut manifests, temp_dir) = - compute_paths_and_load_manifests(args.roots, args.install_path)?; + compute_paths_and_load_manifests(cargo_root.clone(), args.install_path)?; // Remove installed crates let mut crate_names = @@ -107,6 +108,8 @@ pub async fn install_crates(args: Args, jobserver_client: LazyJobserverClient) - temp_dir: temp_dir.path().to_owned(), install_path, + cargo_root, + client, gh_api_client, jobserver_client, diff --git a/crates/binstalk/src/ops.rs b/crates/binstalk/src/ops.rs index 47655068..42f2eec3 100644 --- a/crates/binstalk/src/ops.rs +++ b/crates/binstalk/src/ops.rs @@ -32,6 +32,8 @@ pub struct Options { pub temp_dir: PathBuf, pub install_path: PathBuf, + pub cargo_root: Option, + pub client: Client, pub gh_api_client: GhApiClient, pub jobserver_client: LazyJobserverClient, diff --git a/crates/binstalk/src/ops/resolve/resolution.rs b/crates/binstalk/src/ops/resolve/resolution.rs index 935ae3d6..1a0b2ea6 100644 --- a/crates/binstalk/src/ops/resolve/resolution.rs +++ b/crates/binstalk/src/ops/resolve/resolution.rs @@ -154,6 +154,10 @@ impl ResolutionSource { cmd.arg("--locked"); } + if let Some(cargo_root) = &opts.cargo_root { + cmd.arg("--root").arg(cargo_root); + } + if !opts.dry_run { let mut child = opts .jobserver_client