From: Daan De Meyer Date: Fri, 16 Aug 2024 08:29:33 +0000 (+0200) Subject: Optimize clean_package_manager_metadata() X-Git-Tag: v25~357^2~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2367afe3a44891013fc731380ae6708613e796a4;p=thirdparty%2Fmkosi.git Optimize clean_package_manager_metadata() --- diff --git a/mkosi/installer/__init__.py b/mkosi/installer/__init__.py index 7c0429f7c..bdcb08ca7 100644 --- a/mkosi/installer/__init__.py +++ b/mkosi/installer/__init__.py @@ -145,10 +145,13 @@ def clean_package_manager_metadata(context: Context) -> None: # the corresponding package manager is installed in the image. executable = context.config.distribution.package_manager(context.config).executable(context.config) + remove = [] for tool, paths in (("rpm", ["var/lib/rpm", "usr/lib/sysimage/rpm"]), ("dnf5", ["usr/lib/sysimage/libdnf5"]), ("dpkg", ["var/lib/dpkg"]), (executable, [f"var/lib/{subdir}", f"var/cache/{subdir}"])): if context.config.clean_package_metadata == ConfigFeature.enabled or not find_binary(tool, root=context.root): - rmtree(*(context.root / p for p in paths if (context.root / p).exists()), sandbox=context.sandbox) + remove += [context.root / p for p in paths if (context.root / p).exists()] + + rmtree(*remove, sandbox=context.sandbox)