From 95de3790d7b7b10b00701ea2cf2fd75af16d797f Mon Sep 17 00:00:00 2001 From: Prince Date: Tue, 3 Sep 2024 18:27:19 -0700 Subject: [PATCH] added signal for programme termination --- main.go | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/main.go b/main.go index 65ad69a9..b29bb9d8 100644 --- a/main.go +++ b/main.go @@ -6,6 +6,9 @@ package main import ( "log" + "os" + "os/signal" + "syscall" "github.com/schollz/croc/v10/src/cli" ) @@ -27,7 +30,24 @@ func main() { // fmt.Println("wrote profile") // } // }() - if err := cli.Run(); err != nil { - log.Fatalln(err) - } + + // Create a channel to receive OS signals + sigs := make(chan os.Signal, 1) + signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM) + + go func() { + if err := cli.Run(); err != nil { + log.Fatalln(err) + } + }() + + // Wait for a termination signal + sig := <-sigs + log.Println("Received signal:", sig) + + // Perform any necessary cleanup here + log.Println("Performing cleanup...") + + // Exit the program gracefully + os.Exit(0) }