From 2ad5ef4cf5b7bd9f78aaf7a385b254e004d9cb73 Mon Sep 17 00:00:00 2001 From: innocentzero Date: Thu, 11 Apr 2024 22:13:04 +0530 Subject: [PATCH] refact(fedora): Package creation from output Packages created now strip the repo if it is one of the default one on fedora Signed-off-by: innocentzero --- .../pacdef_core/src/backend/actual/fedora.rs | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/crates/pacdef_core/src/backend/actual/fedora.rs b/crates/pacdef_core/src/backend/actual/fedora.rs index e8323e2..24e30ed 100644 --- a/crates/pacdef_core/src/backend/actual/fedora.rs +++ b/crates/pacdef_core/src/backend/actual/fedora.rs @@ -38,7 +38,7 @@ impl Backend for Fedora { cmd.args(self.get_switches_info()); let output = String::from_utf8(cmd.output()?.stdout)?; - let packages: HashSet = output.lines().map(|package| package.into()).collect(); + let packages: HashSet = output.lines().map(create_package).collect(); Ok(packages) } @@ -53,7 +53,7 @@ impl Backend for Fedora { let output = String::from_utf8(cmd.output()?.stdout)?; - let packages: HashSet = output.lines().map(|package| package.into()).collect(); + let packages: HashSet = output.lines().map(create_package).collect(); Ok(packages) } @@ -107,3 +107,18 @@ impl Fedora { } } } + +fn create_package(package: &str) -> Package { + if (package.contains("koji") + || package.contains("fedora") + || package.contains("updates") + || package.contains("anaconda") + || package.contains('@')) + && !package.contains("copr") + { + let package = package.split('/').nth(1).expect("Cannot be empty!"); + package.into() + } else { + package.into() + } +}