code: func ContextWithSignal(ctx context.Context) context.Context {
  	newCtx, cancel := context.WithCancel(ctx)
  	signals := make(chan os.Signal)
  	signal.Notify(signals, syscall.SIGINT, syscall.SIGTERM)
  	go func() {
  		select {
  		case <-signals:
  			cancel()
  		}
  	}()
  	return newCtx
  }
docs: // ContextWithSignal creates a context canceled when SIGINT or SIGTERM are notified