func startHelper()

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
	}
}