summaryrefslogtreecommitdiff
path: root/src/build.rs
diff options
context:
space:
mode:
authorHermes Agent <hermes@localhost>2026-08-12 07:40:00 +0000
committerHermes Agent <hermes@localhost>2026-08-12 07:40:00 +0000
commit5e6cae20331f8e7cfd551b4656f0de852a4ad44c (patch)
tree4f34ca14c7818bfa4c262c43836ab3c3bab65689 /src/build.rs
parent1c88ac5cba34058fc172001325dd2703d6fb3b92 (diff)
Clean workspace after rootfs finalization failure
Diffstat (limited to 'src/build.rs')
-rw-r--r--src/build.rs7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/build.rs b/src/build.rs
index 994b793..1fd7720 100644
--- a/src/build.rs
+++ b/src/build.rs
@@ -70,7 +70,7 @@ impl<I: PackageInstaller, B: InitramfsBuilder> BuildExecutor<I, B> {
anyhow::anyhow!("package installer did not create rootfs: {}", rootfs.display()),
);
}
- RootfsFinalization::new(
+ if let Err(error) = RootfsFinalization::new(
Vec::new(),
InitrdOem::new(
plan.spec().boot.initrd_features.iter().cloned(),
@@ -78,7 +78,10 @@ impl<I: PackageInstaller, B: InitramfsBuilder> BuildExecutor<I, B> {
),
Vec::new(),
)
- .apply(&rootfs)?;
+ .apply(&rootfs)
+ {
+ return Self::fail_and_remove_workspace(workspace, error);
+ }
let initramfs_request = match InitramfsRequest::discover(&rootfs) {
Ok(request) => request,