From: Sebastien Douheret Date: Fri, 9 Mar 2018 16:34:42 +0000 (+0100) Subject: Added default CTRL+C signal handler. X-Git-Tag: v1.1.1~2 X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?p=src%2Fxds%2Fxds-cli.git;a=commitdiff_plain;h=92f718ade3789c1ed33be04d03c3214b6ed8f596 Added default CTRL+C signal handler. Signed-off-by: Sebastien Douheret --- diff --git a/main.go b/main.go index 2dfd056..8d1e0eb 100644 --- a/main.go +++ b/main.go @@ -26,6 +26,7 @@ import ( "regexp" "sort" "strings" + "syscall" "text/tabwriter" "gerrit.automotivelinux.org/gerrit/src/xds/xds-agent.git/lib/xaapiv1" @@ -324,6 +325,20 @@ func main() { // Start signals monitoring routine MonitorSignals() + // Default callback to handle interrupt signal + // Maybe be overwritten by some subcommand (eg. targets commands) + err := OnSignals(func(sig os.Signal) { + Log.Debugf("Send signal %v (from main)", sig) + if IsInterruptSignal(sig) { + err := cli.NewExitError("Interrupted\n", int(syscall.EINTR)) + cli.HandleExitCoder(err) + } + }) + if err != nil { + cli.NewExitError(err.Error(), 1) + return + } + // Run the cli app app.Run(os.Args) }