Files
hatchet/cmd/hatchet-api/api/run.go
Gabe Ruttner a8d42819ea feat: check security service (#639)
* feat: check security service

* feat: propegate version

* feat: with ident

* fix: lint

* chore: generate

* fix: change domain

* fix: panic recover

* fix: migrations

* fix: hash

* fix: dont check in tests
2024-06-26 16:26:29 -04:00

49 lines
971 B
Go

package api
import (
"fmt"
"github.com/hatchet-dev/hatchet/api/v1/server/run"
"github.com/hatchet-dev/hatchet/pkg/config/loader"
)
func Start(cf *loader.ConfigLoader, interruptCh <-chan interface{}, version string) error {
// init the repository
configCleanup, sc, err := cf.LoadServerConfig(version)
if err != nil {
return fmt.Errorf("error loading server config: %w", err)
}
var teardown []func() error
runner := run.NewAPIServer(sc)
if err != nil {
return err
}
apiCleanup, err := runner.Run()
if err != nil {
return fmt.Errorf("error starting API server: %w", err)
}
teardown = append(teardown, apiCleanup)
teardown = append(teardown, configCleanup)
sc.Logger.Debug().Msgf("api started successfully")
<-interruptCh
sc.Logger.Debug().Msgf("api is shutting down...")
for _, teardown := range teardown {
if err := teardown(); err != nil {
return err
}
}
sc.Logger.Debug().Msgf("api successfully shut down")
return nil
}