@@ -201,16 +201,24 @@ def clean_package_manager_metadata(context: Context) -> None:
201201 Try them all regardless of the distro: metadata is only removed if
202202 the package manager is not present in the image.
203203 """
204+ pathsToClean = package_manager_metadata_to_clean (context )
205+ rmtree (* pathsToClean , sandbox = context .sandbox )
206+
207+
208+ def package_manager_metadata_to_clean (context : Context ) -> list [Path ]:
209+ """
210+ Identifies any metadata paths that should be removed
211+ """
204212 subdir = context .config .distribution .installer .package_manager (context .config ).subdir (context .config )
205213
206214 if context .config .clean_package_metadata == ConfigFeature .disabled :
207- return
215+ return []
208216
209217 if context .config .clean_package_metadata == ConfigFeature .auto and context .config .output_format in (
210218 OutputFormat .directory ,
211219 OutputFormat .tar ,
212220 ):
213- return
221+ return []
214222
215223 # If cleaning is not explicitly requested, keep the repository metadata if we're building a directory or
216224 # tar image (which are often used as a base tree for extension images and thus should retain package
@@ -219,7 +227,7 @@ def clean_package_manager_metadata(context: Context) -> None:
219227 executable = context .config .distribution .installer .package_manager (context .config ).executable (
220228 context .config
221229 )
222- remove = []
230+ pathsToClean = []
223231
224232 for tool , paths in (
225233 ("rpm" , ["var/lib/rpm" , "usr/lib/sysimage/rpm" ]),
@@ -230,6 +238,6 @@ def clean_package_manager_metadata(context: Context) -> None:
230238 if context .config .clean_package_metadata == ConfigFeature .enabled or not find_binary (
231239 tool , root = context .root
232240 ):
233- remove += [context .root / p for p in paths if (context .root / p ).exists ()]
241+ pathsToClean += [context .root / p for p in paths if (context .root / p ).exists ()]
234242
235- rmtree ( * remove , sandbox = context . sandbox )
243+ return pathsToClean
0 commit comments