diff --git a/crates/pacdef_core/src/config.rs b/crates/pacdef_core/src/config.rs index c1bcfe6..d31b314 100644 --- a/crates/pacdef_core/src/config.rs +++ b/crates/pacdef_core/src/config.rs @@ -14,6 +14,8 @@ pub struct Config { pub aur_rm_args: Option>, /// Warn the user when a group is not a symlink. pub warn_not_symlinks: bool, + /// Backends the user does not want to use even though the binary exists. + pub disabled_backends: Vec, } impl Config { @@ -65,6 +67,7 @@ impl Default for Config { aur_helper: "paru".into(), aur_rm_args: None, warn_not_symlinks: true, + disabled_backends: vec![], } } } diff --git a/crates/pacdef_core/src/core.rs b/crates/pacdef_core/src/core.rs index 890628f..a71243c 100644 --- a/crates/pacdef_core/src/core.rs +++ b/crates/pacdef_core/src/core.rs @@ -95,9 +95,15 @@ impl Pacdef { let mut to_install = ToDoPerBackend::new(); for mut backend in Backends::iter() { - #[cfg(feature = "arch")] - self.overwrite_values_from_config(&mut *backend); + if self + .config + .disabled_backends + .contains(&backend.get_section().to_string()) + { + continue; + } + self.overwrite_values_from_config(&mut *backend); backend.load(&self.groups); match backend.get_missing_packages_sorted() { @@ -172,9 +178,15 @@ impl Pacdef { let mut result = ToDoPerBackend::new(); for mut backend in Backends::iter() { - #[cfg(feature = "arch")] - self.overwrite_values_from_config(&mut *backend); + if self + .config + .disabled_backends + .contains(&backend.get_section().to_string()) + { + continue; + } + self.overwrite_values_from_config(&mut *backend); backend.load(&self.groups); match backend.get_unmanaged_packages_sorted() {