forked from tangled.org/core
Monorepo for Tangled — https://tangled.org

knotserver: pass logger into DB

Signed-off-by: oppiliappan <me@oppi.li>

Changed files
+14 -4
knotserver
+13 -3
knotserver/db/db.go
···
package db
import (
+
"context"
"database/sql"
+
"log/slog"
"strings"
_ "github.com/mattn/go-sqlite3"
+
"tangled.org/core/log"
)
type DB struct {
-
db *sql.DB
+
db *sql.DB
+
logger *slog.Logger
}
-
func Setup(dbPath string) (*DB, error) {
+
func Setup(ctx context.Context, dbPath string) (*DB, error) {
// https://github.com/mattn/go-sqlite3#connection-string
opts := []string{
"_foreign_keys=1",
···
"_synchronous=NORMAL",
"_auto_vacuum=incremental",
}
+
+
logger := log.FromContext(ctx)
+
logger = log.SubLogger(logger, "db")
db, err := sql.Open("sqlite3", dbPath+"?"+strings.Join(opts, "&"))
if err != nil {
···
return nil, err
}
-
return &DB{db: db}, nil
+
return &DB{
+
db: db,
+
logger: logger,
+
}, nil
}
+1 -1
knotserver/server.go
···
logger.Info("running in dev mode, signature verification is disabled")
}
-
db, err := db.Setup(c.Server.DBPath)
+
db, err := db.Setup(ctx, c.Server.DBPath)
if err != nil {
return fmt.Errorf("failed to load db: %w", err)
}