From 0a0a13940798207778e3c624604bfea8c0f45329 Mon Sep 17 00:00:00 2001 From: Chewing_Bever Date: Thu, 13 Jul 2023 22:47:08 +0200 Subject: [PATCH] refactor(server): some functional coding --- server/src/repo/manager.rs | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/server/src/repo/manager.rs b/server/src/repo/manager.rs index 7b3635d..14ccda1 100644 --- a/server/src/repo/manager.rs +++ b/server/src/repo/manager.rs @@ -105,19 +105,22 @@ impl RepoGroupManager { // Also remove the old package archive let arch_repo_pkg_dir = self.pkg_dir.join(repo).join(arch); - for entry in arch_repo_pkg_dir.read_dir()? { - let entry = entry?; - let file_name = entry.file_name(); - let file_name = file_name.to_string_lossy(); + arch_repo_pkg_dir.read_dir()?.try_for_each(|res| { + res.and_then(|entry: fs::DirEntry| { + let file_name = entry.file_name(); + let file_name = file_name.to_string_lossy(); - // Same trick, but for package files, we also need to trim the arch - let name_parts = file_name.split('-').collect::>(); - let name = name_parts[..name_parts.len() - 3].join("-"); + // Same trick, but for package files, we also need to trim the arch + let name_parts = file_name.split('-').collect::>(); + let name = name_parts[..name_parts.len() - 3].join("-"); - if name == pkg_name { - fs::remove_file(entry.path())?; - } - } + if name == pkg_name { + fs::remove_file(entry.path()) + } else { + Ok(()) + } + }) + })?; return Ok(true); } @@ -166,7 +169,7 @@ impl RepoGroupManager { } for arch in arch_repos.iter() { - self.add_pkg_in_arch_repo(repo, &arch, pkg)?; + self.add_pkg_in_arch_repo(repo, arch, pkg)?; } }