package db import ( "database/sql" "log/slog" "os" _ "github.com/mattn/go-sqlite3" ) var Logger *slog.Logger // Create a new database connection func New() *sql.DB { conn, err := sql.Open("sqlite3", "./foo.db") if err != nil { Logger.Error("Failed to create database connection") panic(err) } if err = InitTables(conn); err != nil { panic(err) } return conn } func InitTables(conn *sql.DB) error { _, err := conn.Exec(` CREATE TABLE IF NOT EXISTS users ( id INTEGER PRIMARY KEY AUTOINCREMENT, username TEXT UNIQUE NOT NULL, salt BLOB NOT NULL, saltedHash BLOB NOT NULL ) `) if err != nil { return err } return nil } func init() { Logger = slog.New(slog.NewTextHandler(os.Stdout, nil)) }