// Copyright Earl Warren // Copyright Loïc Dachary // SPDX-License-Identifier: MIT package cmd import ( "context" "os" "os/signal" "syscall" ) func InstallSignals() (context.Context, context.CancelFunc) { ctx, cancel := context.WithCancel(context.Background()) go func() { signalChannel := make(chan os.Signal, 1) signal.Notify( signalChannel, syscall.SIGINT, syscall.SIGTERM, ) select { case <-signalChannel: case <-ctx.Done(): } cancel() signal.Reset() }() return ctx, cancel }