47 lines
902 B
Go
47 lines
902 B
Go
package main
|
|
|
|
import (
|
|
"context"
|
|
"log/slog"
|
|
"os"
|
|
|
|
"codeberg.org/nextgo/dbots/internal/db"
|
|
"codeberg.org/nextgo/dbots/internal/server"
|
|
"codeberg.org/ungo/env"
|
|
"codeberg.org/ungo/env/dotenv"
|
|
"codeberg.org/ungo/gonsole"
|
|
"github.com/jackc/pgx/v5/pgxpool"
|
|
)
|
|
|
|
type Config struct {
|
|
DatabaseURL string `env:"DATABASE_URL,required"`
|
|
Port int `env:"PORT,default=8080"`
|
|
}
|
|
|
|
var config Config
|
|
|
|
func init() {
|
|
gonsoleHandler := gonsole.New(os.Stdout, slog.LevelDebug)
|
|
slogHandler := slog.New(gonsoleHandler)
|
|
slog.SetDefault(slogHandler)
|
|
|
|
dotenv.MustLoad()
|
|
if err := env.Load(&config); err != nil {
|
|
panic(err)
|
|
}
|
|
}
|
|
|
|
func main() {
|
|
ctx := context.Background()
|
|
|
|
conn, err := pgxpool.New(ctx, config.DatabaseURL)
|
|
if err != nil {
|
|
slog.Error("error connecting to postgres", "err", err)
|
|
return
|
|
}
|
|
|
|
queries := db.New(conn)
|
|
server := server.NewServer(queries)
|
|
|
|
server.Start(config.Port)
|
|
}
|