From cb4871321d3bdc731f7625867b9562d787d268a3 Mon Sep 17 00:00:00 2001 From: Guilherme Silva <626206+guihkx@users.noreply.github.com> Date: Mon, 9 Jan 2023 04:49:30 -0300 Subject: [PATCH] Make garuda-update update AUR packages by default (#296) --- config.example.toml | 3 ++- src/config.rs | 24 +++++++++++++++++------- src/steps/os/archlinux.rs | 12 +++++++++++- 3 files changed, 30 insertions(+), 9 deletions(-) diff --git a/config.example.toml b/config.example.toml index d4fe9403..7055bd02 100644 --- a/config.example.toml +++ b/config.example.toml @@ -74,7 +74,7 @@ #autoremove = true [linux] -# Arch Package Manager to use. Allowed values: autodetect, trizen, aura, paru, yay, pikaur, pacman, pamac. +# Arch Package Manager to use. Allowed values: autodetect, aura, garuda_update, pacman, pamac, paru, pikaur, trizen, yay. #arch_package_manager = "pacman" # Arguments to pass yay (or paru) when updating packages #yay_arguments = "--nodevel" @@ -82,6 +82,7 @@ #dnf_arguments = "--refresh" #aura_aur_arguments = "-kx" #aura_pacman_arguments = "" +#garuda_update_arguments = "" #show_arch_news = true #trizen_arguments = "--devel" #pikaur_arguments = "" diff --git a/src/config.rs b/src/config.rs index 110e4055..590f8544 100644 --- a/src/config.rs +++ b/src/config.rs @@ -231,15 +231,15 @@ pub struct Brew { #[derive(Debug, Deserialize, Clone, Copy)] #[serde(rename_all = "snake_case")] pub enum ArchPackageManager { - GarudaUpdate, Autodetect, - Trizen, - Paru, - Yay, - Pacman, - Pikaur, - Pamac, Aura, + GarudaUpdate, + Pacman, + Pamac, + Paru, + Pikaur, + Trizen, + Yay, } #[derive(Deserialize, Default, Debug)] @@ -250,6 +250,7 @@ pub struct Linux { aura_pacman_arguments: Option, arch_package_manager: Option, show_arch_news: Option, + garuda_update_arguments: Option, trizen_arguments: Option, pikaur_arguments: Option, pamac_arguments: Option, @@ -781,6 +782,15 @@ impl Config { self.config_file.notify_each_step.unwrap_or(false) } + /// Extra garuda-update arguments + pub fn garuda_update_arguments(&self) -> &str { + self.config_file + .linux + .as_ref() + .and_then(|s| s.garuda_update_arguments.as_deref()) + .unwrap_or("") + } + /// Extra trizen arguments pub fn trizen_arguments(&self) -> &str { self.config_file diff --git a/src/steps/os/archlinux.rs b/src/steps/os/archlinux.rs index cd8b767a..ea03b98f 100644 --- a/src/steps/os/archlinux.rs +++ b/src/steps/os/archlinux.rs @@ -80,8 +80,18 @@ pub struct GarudaUpdate { impl ArchPackageManager for GarudaUpdate { fn upgrade(&self, ctx: &ExecutionContext) -> Result<()> { let mut command = ctx.run_type().execute(&self.executable); - command.env("PATH", get_execution_path()); + + command + .env("PATH", get_execution_path()) + .env("UPDATE_AUR", "1") + .env("SKIP_MIRRORLIST", "1"); + + if ctx.config().yes(Step::System) { + command.env("PACMAN_NOCONFIRM", "1"); + } + command.args(ctx.config().garuda_update_arguments().split_whitespace()); command.status_checked()?; + Ok(()) } }