From f3014bfdc9977273751464704039ad07a9ad6f7d Mon Sep 17 00:00:00 2001 From: dwrz Date: Sat, 10 Oct 2026 15:02:16 +0000 Subject: [PATCH] Add db to odidere cmd --- cmd/odidere/main.go | 48 +++++++++++++++++++++++++++++++++++---------- 1 file changed, 38 insertions(+), 10 deletions(-) diff --git a/cmd/odidere/main.go b/cmd/odidere/main.go index 5d46f02..715070e 100644 --- a/cmd/odidere/main.go +++ b/cmd/odidere/main.go @@ -11,6 +11,7 @@ import ( "runtime/debug" "code.chimeric.al/chimerical/odidere/internal/config" + "code.chimeric.al/chimerical/odidere/internal/db" "code.chimeric.al/chimerical/odidere/internal/service" ) @@ -20,13 +21,16 @@ func main() { ) flag.Parse() - var log = slog.New(slog.NewTextHandler( - os.Stderr, - &slog.HandlerOptions{ - AddSource: true, - Level: slog.LevelDebug, - }, - )) + var ( + ctx = context.Background() + log = slog.New(slog.NewTextHandler( + os.Stderr, + &slog.HandlerOptions{ + AddSource: true, + Level: slog.LevelDebug, + }, + )) + ) if *cfgPath == "" { log.Error("missing config path") os.Exit(1) @@ -45,7 +49,7 @@ func main() { } } log.Debug( - "odidered", + "odidere", slog.Group( "build", slog.String("commit", commit), @@ -63,7 +67,23 @@ func main() { os.Exit(1) } - svc, err := service.New(cfg, log) + sdb, err := db.Connect(ctx, db.Config{Path: cfg.Database.Path}) + if err != nil { + log.Error( + "failed to connect to database", + slog.Any("error", err), + ) + os.Exit(1) + } + if err := sdb.ApplySchema(ctx, log); err != nil { + log.Error( + "failed to apply database schema", + slog.Any("error", err), + ) + os.Exit(1) + } + + svc, err := service.New(cfg, log, sdb) if err != nil { log.Error( "failed to create service", @@ -72,11 +92,19 @@ func main() { os.Exit(1) } - if err := svc.Run(context.Background()); err != nil { + if err := svc.Run(ctx); err != nil { log.Error( "failed to run", slog.Any("error", err), ) os.Exit(1) } + + if err := sdb.Close(); err != nil { + log.Error( + "failed to close database", + slog.Any("error", err), + ) + os.Exit(1) + } }