From 96ebcfd08f643aaf10bd7bdd383f4c08265f6a6f Mon Sep 17 00:00:00 2001 From: Jiahao XU Date: Wed, 22 Feb 2023 22:27:17 +1100 Subject: [PATCH] Add new option `--locked` that is passed through to `cargo-install` (#830) Signed-off-by: Jiahao XU --- crates/bin/src/args.rs | 6 ++++++ crates/bin/src/entry.rs | 1 + crates/binstalk/src/ops.rs | 1 + crates/binstalk/src/ops/resolve/resolution.rs | 4 ++++ 4 files changed, 12 insertions(+) diff --git a/crates/bin/src/args.rs b/crates/bin/src/args.rs index 19b18b77..f9b52526 100644 --- a/crates/bin/src/args.rs +++ b/crates/bin/src/args.rs @@ -188,6 +188,12 @@ pub struct Args { #[clap(help_heading = "Options", long)] pub roots: Option, + /// This option will be passed through to all `cargo-install` invocations. + /// + /// It will require `Cargo.lock` to be up to date. + #[clap(help_heading = "Options", long)] + pub locked: bool, + /// Deprecated, here for back-compat only. Secure is now on by default. #[clap(hide(true), long)] pub secure: bool, diff --git a/crates/bin/src/entry.rs b/crates/bin/src/entry.rs index 3e9f30cb..7385e2f9 100644 --- a/crates/bin/src/entry.rs +++ b/crates/bin/src/entry.rs @@ -97,6 +97,7 @@ pub async fn install_crates(args: Args, jobserver_client: LazyJobserverClient) - dry_run: args.dry_run, force: args.force, quiet: args.log_level == Some(LevelFilter::Off), + locked: args.locked, version_req: args.version_req, manifest_path: args.manifest_path, diff --git a/crates/binstalk/src/ops.rs b/crates/binstalk/src/ops.rs index 1b49f8a0..3d965edb 100644 --- a/crates/binstalk/src/ops.rs +++ b/crates/binstalk/src/ops.rs @@ -21,6 +21,7 @@ pub struct Options { pub dry_run: bool, pub force: bool, pub quiet: bool, + pub locked: bool, pub version_req: Option, pub manifest_path: Option, diff --git a/crates/binstalk/src/ops/resolve/resolution.rs b/crates/binstalk/src/ops/resolve/resolution.rs index d313ac59..935ae3d6 100644 --- a/crates/binstalk/src/ops/resolve/resolution.rs +++ b/crates/binstalk/src/ops/resolve/resolution.rs @@ -150,6 +150,10 @@ impl ResolutionSource { cmd.arg("--force"); } + if opts.locked { + cmd.arg("--locked"); + } + if !opts.dry_run { let mut child = opts .jobserver_client