From b581f137d5fefec23ab578b8404bdee7d9d736ba Mon Sep 17 00:00:00 2001 From: David Fridrich Date: Mon, 10 Feb 2025 12:28:48 +0100 Subject: [PATCH] context moved to main Signed-off-by: David Fridrich --- hack/main.go | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/hack/main.go b/hack/main.go index 02eadf0ae..7d9d81e4e 100644 --- a/hack/main.go +++ b/hack/main.go @@ -1,8 +1,11 @@ package main import ( + "context" "fmt" "os" + "os/signal" + "syscall" ) func main() { @@ -19,11 +22,26 @@ func main() { fmt.Fprintf(os.Stderr, "expected exactly 1 argument: '%v'\n", args) os.Exit(1) } + + // Set up context for possible signal inputs to not disrupt cleanup process. + // This is not gonna do much for workflows since they finish and shutdown + // but in case of local testing - dont leave left over resources on disk/RAM. + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + sigs := make(chan os.Signal, 1) + signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM) + go func() { + <-sigs + cancel() + <-sigs + os.Exit(130) + }() + switch args[0] { case "update-builder": - updateBuilder() + err = updateBuilder(ctx) case "update-components": - err = updateComponentVersions() + err = updateComponentVersions(ctx) default: fmt.Fprintf(os.Stderr, "unknown argument '%s', don't know which hack/ script to run", args[0]) os.Exit(1)