From da786a8dc5c8c4e4854d4c9610b50d45adfca61a Mon Sep 17 00:00:00 2001 From: Jess Frazelle Date: Tue, 6 Sep 2016 13:41:02 -0700 Subject: [PATCH] hack/e2e.go: listen for Interrupt signal and attempt cleanup if using --down Signed-off-by: Jess Frazelle Signed-off-by: Jess Frazelle --- hack/e2e.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/hack/e2e.go b/hack/e2e.go index 65a974f523d..4c909a12dd3 100644 --- a/hack/e2e.go +++ b/hack/e2e.go @@ -25,6 +25,7 @@ import ( "log" "os" "os/exec" + "os/signal" "os/user" "path/filepath" "strconv" @@ -159,6 +160,21 @@ func main() { log.Fatalf("Error creating deployer: %v", err) } + if *down { + // listen for signals such as ^C and gracefully attempt to clean up + c := make(chan os.Signal, 1) + signal.Notify(c, os.Interrupt) + go func() { + for range c { + log.Print("Captured ^C, gracefully attempting to cleanup resources..") + if err := deploy.Down(); err != nil { + log.Printf("Tearing down deployment failed: %v", err) + os.Exit(1) + } + } + }() + } + if err := run(deploy); err != nil { log.Fatalf("Something went wrong: %s", err) }