summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/build.rs6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/build.rs b/src/build.rs
index fcacfc0..305c059 100644
--- a/src/build.rs
+++ b/src/build.rs
@@ -57,7 +57,11 @@ impl<I: PackageInstaller, B: InitramfsBuilder> BuildExecutor<I, B> {
let request = plan.package_request(workspace, apt_config)?;
std::fs::create_dir_all(workspace)
.with_context(|| format!("create workspace {}", workspace.display()))?;
- self.installer.install(&request)?;
+ if let Err(error) = self.installer.install(&request) {
+ std::fs::remove_dir_all(workspace)
+ .with_context(|| format!("remove failed workspace {}", workspace.display()))?;
+ return Err(error);
+ }
let rootfs = workspace.join("chroot");
if !rootfs.is_dir() {