in cmd/starter/start.go [58:90]
func startHelper(_ *cobra.Command, _ []string) error {
ctx, shutdown := context.WithCancel(context.Background())
defer shutdown()
// setup signal handling to cancel the context
go func() {
signals := make(chan os.Signal, 1)
signal.Notify(signals, syscall.SIGTERM)
<-signals
log.Println("received SIGTERM. Terminating...")
shutdown()
}()
api, err := apiserver.NewAPIServer(options)
if err != nil {
log.Println(ctx, err.Error())
return err
}
errorPipeline := make(chan error)
go func() {
log.Printf("Serving API on %s\n", options.Addr)
errorPipeline <- api.ListenAndServe(ctx)
}()
select {
case <-ctx.Done():
return nil
case pipelineErr := <-errorPipeline:
return pipelineErr
}
}