]> git.ipfire.org Git - thirdparty/mkosi.git/commitdiff
Remove empty directories from extension images
authorDaan De Meyer <daan.j.demeyer@gmail.com>
Sun, 19 Jan 2025 19:02:42 +0000 (20:02 +0100)
committerDaan De Meyer <daan.j.demeyer@gmail.com>
Sun, 19 Jan 2025 20:17:17 +0000 (21:17 +0100)
mkosi/__init__.py

index 18fd920539a104cf410da98bab52f3fe8dae83c1..8dd22865c84bad0eb1bf6c76dfa68113407aea10 100644 (file)
@@ -183,12 +183,18 @@ def mount_base_trees(context: Context) -> Iterator[None]:
 def remove_files(context: Context) -> None:
     """Remove files based on user-specified patterns"""
 
-    if not context.config.remove_files and not (context.root / "work").exists():
-        return
+    if context.config.remove_files or (context.root / "work").exists():
+        with complete_step("Removing files…"):
+            remove = flatten(
+                context.root.glob(pattern.lstrip("/")) for pattern in context.config.remove_files
+            )
+            rmtree(*remove, context.root / "work", sandbox=context.sandbox)
 
-    with complete_step("Removing files…"):
-        remove = flatten(context.root.glob(pattern.lstrip("/")) for pattern in context.config.remove_files)
-        rmtree(*remove, context.root / "work", sandbox=context.sandbox)
+    if context.config.output_format.is_extension_image():
+        with complete_step("Removing empty directories…"):
+            for d in reversed(sorted(context.root.glob("**/"))):
+                if not any(d.iterdir()):
+                    d.rmdir()
 
 
 def install_distribution(context: Context) -> None: