diff --git a/src/binstall.rs b/src/binstall.rs index 12a532f7..43707c0c 100644 --- a/src/binstall.rs +++ b/src/binstall.rs @@ -17,4 +17,5 @@ pub struct Options { pub manifest_path: Option, pub cli_overrides: PkgOverride, pub desired_targets: DesiredTargets, + pub quiet: bool, } diff --git a/src/binstall/install.rs b/src/binstall/install.rs index e4db9eb8..670c81eb 100644 --- a/src/binstall/install.rs +++ b/src/binstall/install.rs @@ -47,7 +47,7 @@ pub async fn install( .ok_or_else(|| miette!("No viable targets found, try with `--targets`"))?; if !opts.dry_run { - install_from_source(package, target, jobserver_client) + install_from_source(package, target, jobserver_client, opts.quiet) .await .map(|_| None) } else { @@ -126,6 +126,7 @@ async fn install_from_source( package: Package, target: &str, lazy_jobserver_client: LazyJobserverClient, + quiet: bool, ) -> Result<()> { let jobserver_client = lazy_jobserver_client.get().await?; @@ -136,13 +137,20 @@ async fn install_from_source( let mut command = process::Command::new("cargo"); jobserver_client.configure(&mut command); - let mut child = Command::from(command) - .arg("install") + let mut cmd = Command::from(command); + + cmd.arg("install") .arg(package.name) .arg("--version") .arg(package.version) .arg("--target") - .arg(&*target) + .arg(&*target); + + if quiet { + cmd.arg("quiet"); + } + + let mut child = cmd .spawn() .into_diagnostic() .wrap_err("Spawning cargo install failed.")?; diff --git a/src/main.rs b/src/main.rs index 85f5cc4e..35379458 100644 --- a/src/main.rs +++ b/src/main.rs @@ -335,6 +335,7 @@ async fn entry(jobserver_client: LazyJobserverClient) -> Result<()> { manifest_path: opts.manifest_path.take(), cli_overrides, desired_targets, + quiet: opts.log_level == LevelFilter::Off, }); let tasks: Vec<_> = if !opts.dry_run && !opts.no_confirm {