From 730f7d6c15825f07f6e79a46e200525a27f65ea5 Mon Sep 17 00:00:00 2001 From: Jiahao XU Date: Mon, 18 Jul 2022 16:21:03 +1000 Subject: [PATCH] Refactor `main.rs`: Simplify `install_from_source` Rm arg `opts` Signed-off-by: Jiahao XU --- src/main.rs | 75 +++++++++++++++++++++++++---------------------------- 1 file changed, 35 insertions(+), 40 deletions(-) diff --git a/src/main.rs b/src/main.rs index 56800774..55ba5b42 100644 --- a/src/main.rs +++ b/src/main.rs @@ -320,9 +320,16 @@ async fn entry() -> Result<()> { warn!("The package will be installed from source (with cargo)",); if !opts.dry_run { uithread.confirm().await?; - } - install_from_source(opts, package, target).await + install_from_source(package, target).await + } else { + info!( + "Dry-run: running `cargo install {} --version {} --target {target}`", + package.name, package.version + ); + + Ok(()) + } } } } @@ -595,45 +602,33 @@ async fn install_from_package( }) } -async fn install_from_source( - opts: Arc, - package: Package, - target: &str, -) -> Result<()> { - if opts.dry_run { - info!( - "Dry-run: running `cargo install {} --version {} --target {target}`", - package.name, package.version - ); +async fn install_from_source(package: Package, target: &str) -> Result<()> { + debug!( + "Running `cargo install {} --version {} --target {target}`", + package.name, package.version + ); + let mut child = Command::new("cargo") + .arg("install") + .arg(package.name) + .arg("--version") + .arg(package.version) + .arg("--target") + .arg(target) + .spawn() + .into_diagnostic() + .wrap_err("Spawning cargo install failed.")?; + debug!("Spawned command pid={:?}", child.id()); + + let status = child + .wait() + .await + .into_diagnostic() + .wrap_err("Running cargo install failed.")?; + if status.success() { + info!("Cargo finished successfully"); Ok(()) } else { - debug!( - "Running `cargo install {} --version {} --target {target}`", - package.name, package.version - ); - let mut child = Command::new("cargo") - .arg("install") - .arg(package.name) - .arg("--version") - .arg(package.version) - .arg("--target") - .arg(target) - .spawn() - .into_diagnostic() - .wrap_err("Spawning cargo install failed.")?; - debug!("Spawned command pid={:?}", child.id()); - - let status = child - .wait() - .await - .into_diagnostic() - .wrap_err("Running cargo install failed.")?; - if status.success() { - info!("Cargo finished successfully"); - Ok(()) - } else { - error!("Cargo errored! {status:?}"); - Err(miette!("Cargo install error")) - } + error!("Cargo errored! {status:?}"); + Err(miette!("Cargo install error")) } }