From 4abe1a166f9be97e8e71b1bb4d7599cc29323011 Mon Sep 17 00:00:00 2001 From: Ma Shimiao Date: Fri, 4 Aug 2017 13:55:04 +0800 Subject: [PATCH] cleanup created bundle when creating failed Signed-off-by: Ma Shimiao --- image/image.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/image/image.go b/image/image.go index e95e065..d863b0e 100644 --- a/image/image.go +++ b/image/image.go @@ -290,7 +290,7 @@ func createRuntimeBundle(w walker, dest, refName, rootfs, platform string) error return nil } -func createBundle(w walker, m *manifest, dest, rootfs string) error { +func createBundle(w walker, m *manifest, dest, rootfs string) (retErr error) { c, err := findConfig(w, &m.Config) if err != nil { return err @@ -301,6 +301,13 @@ func createBundle(w walker, m *manifest, dest, rootfs string) error { if err2 := os.MkdirAll(dest, 0755); err2 != nil { return err2 } + defer func() { + if retErr != nil { + if err3 := os.RemoveAll(dest); err3 != nil { + fmt.Printf("Failed to clean up %q: %s\n", dest, err3.Error()) + } + } + }() } else { return err }