operations/upgrade: use brand new upgrade builder

i18n
Fries 2 years ago committed by fries1234
parent a08173f460
commit 34e50db84b

@ -253,6 +253,30 @@ impl PacmanSearchBuilder {
}
}
#[derive(Default, Debug, Clone)]
pub struct PacmanUpgradeBuilder {
no_confirm: bool,
}
impl PacmanUpgradeBuilder {
pub fn no_confirm(mut self, no_confirm: bool) -> Self {
self.no_confirm = no_confirm;
self
}
#[tracing::instrument(level = "trace")]
pub async fn upgrade(self) -> AppResult<()> {
let mut command = ShellCommand::pacman().elevated().arg("-Syu");
if self.no_confirm {
command = command.arg("--noconfirm")
}
command.wait_success().await
}
}
#[derive(Default, Debug, Clone)]
pub struct PacmanUninstallBuilder {
packages: Vec<String>,

@ -1,6 +1,5 @@
use crate::args::UpgradeArgs;
use crate::builder::pacman::{PacmanColor, PacmanQueryBuilder};
use crate::internal::commands::ShellCommand;
use crate::builder::pacman::{PacmanColor, PacmanQueryBuilder, PacmanUpgradeBuilder};
use crate::internal::detect;
use crate::internal::error::SilentUnwrap;
use crate::internal::exit_code::AppExitCode;
@ -27,31 +26,22 @@ pub async fn upgrade(args: UpgradeArgs, options: Options) {
async fn upgrade_repo(options: Options) {
let noconfirm = options.noconfirm;
let mut pacman_args = vec!["-Syu"];
if noconfirm {
pacman_args.push("--noconfirm");
}
tracing::debug!("Upgrading repo packages");
let pacman_result = ShellCommand::pacman()
.elevated()
.args(pacman_args)
.wait()
PacmanUpgradeBuilder::default()
.no_confirm(noconfirm)
.upgrade()
.await
.silent_unwrap(AppExitCode::PacmanError);
if pacman_result.success() {
tracing::info!("Successfully upgraded repo packages");
} else {
let continue_upgrading = prompt!(default no,
"Failed to upgrade repo packages, continue to upgrading AUR packages?",
);
if !continue_upgrading {
tracing::info!("Exiting");
std::process::exit(AppExitCode::PacmanError as i32);
}
}
.unwrap_or_else(|_| {
let continue_upgrading = prompt!(default no,
"Failed to upgrade repo packages, continue to upgrading AUR packages?",
);
if !continue_upgrading {
tracing::info!("Exiting");
std::process::exit(AppExitCode::PacmanError as i32);
}
});
tracing::info!("Successfully upgraded repo packages");
}
#[tracing::instrument(level = "trace")]

Loading…
Cancel
Save