diff --git a/hub/internal/app/app.go b/hub/internal/app/app.go index 5d5072c..4f7eb4d 100644 --- a/hub/internal/app/app.go +++ b/hub/internal/app/app.go @@ -5,6 +5,7 @@ import ( "fmt" standartlog "log" "net" + "os" hubdir "github.com/lorsanstand/HomeOps-Hub/hub/internal" "github.com/lorsanstand/HomeOps-Hub/hub/internal/migrator" @@ -41,7 +42,7 @@ func (a *App) Run() { DBConn, err := sql.Open("sqlite", "database.db") if err != nil { a.log.Error().Err(err).Msg("failed to connect to the database") - return + os.Exit(1) } defer func() { @@ -50,16 +51,10 @@ func (a *App) Run() { } }() - mgrt, err := migrator.NewMigrator(hubdir.MigrationsFS, "migrations") - if err != nil { - a.log.Error().Err(err).Msg("failed to create migrator") - return - } - a.log.Info().Msg("applying database migrations") - if err = mgrt.ApplyMigrations(DBConn); err != nil { - a.log.Error().Err(err).Msg("migrations failed to apply") - return + if err := applyMigrations(DBConn); err != nil { + a.log.Error().Err(err).Msg("") + os.Exit(1) } a.log.Info().Msg("migrations applied successfully") @@ -69,6 +64,7 @@ func (a *App) Run() { connManger := connection_manager.NewConnectionManager(hubStore, statusNotifier, a.log) a.log.Info().Msg("starting hub service") + err = a.hubServe(hubService, connManger) if err != nil { a.log.Error().Err(err).Msg("hub service failed to start") @@ -97,3 +93,14 @@ func (a *App) hubServe(hubService *hub_service.HubService, manager *connection_m return nil } + +func applyMigrations(db *sql.DB) error { + mgrt, err := migrator.NewMigrator(hubdir.MigrationsFS, "migrations") + if err != nil { + return fmt.Errorf("failed to create migrator: %w", err) + } + if err = mgrt.ApplyMigrations(db); err != nil { + return fmt.Errorf("migrations failed to apply: %w", err) + } + return nil +}