From 9de281617f3361e9aa2f55d8d255cd5ffee3968c Mon Sep 17 00:00:00 2001 From: steven-omaha <35634100+steven-omaha@users.noreply.github.com> Date: Sat, 6 Apr 2024 18:43:28 +0200 Subject: [PATCH] refact(rustup): use run_external_command --- .../pacdef_core/src/backend/actual/rustup.rs | 25 +++++++------------ 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/crates/pacdef_core/src/backend/actual/rustup.rs b/crates/pacdef_core/src/backend/actual/rustup.rs index 25ffa05..5f64818 100644 --- a/crates/pacdef_core/src/backend/actual/rustup.rs +++ b/crates/pacdef_core/src/backend/actual/rustup.rs @@ -173,10 +173,7 @@ impl Backend for Rustup { _ => bail!("No such type is managed by rustup!"), } - let result = cmd.status().context("Installing toolchain {p}"); - if !result.as_ref().is_ok_and(|exit| exit.success()) { - return result; - } + run_external_command(cmd).with_context(|| format!("Installing toolchain {p}"))?; } Ok(ExitStatus::from_raw(0)) } @@ -199,32 +196,28 @@ impl Backend for Rustup { removed_toolchains.push(name); } - run_external_command(cmd)?; + run_external_command(cmd) + .with_context(|| format!("removing toolchains [{toolchains:?}]"))?; } - for component in components { + for component_package in components { let mut cmd = Command::new(self.get_binary()); cmd.args(get_remove_switches(Repotype::Component)); - if toolchain_of_component_was_already_removed(&removed_toolchains, &component) { + if toolchain_of_component_was_already_removed(&removed_toolchains, &component_package) { continue; } - cmd.arg(&component.toolchain); - + cmd.arg(&component_package.toolchain); cmd.arg( - component + component_package .component .as_ref() .expect("the constructor ensures this cannot be None"), ); - let result = cmd - .status() - .with_context(|| format!("Removing toolchain {:?})", component)); - if !result.as_ref().is_ok_and(|exit| exit.success()) { - return result; - } + run_external_command(cmd) + .with_context(|| format!("removing component {component_package:?}"))?; } Ok(ExitStatus::from_raw(0)) }