package main import ( "context" "net/http" "codeberg.org/vlbeaudoin/voki/v3" "git.agecem.com/bottin/bottin/v10/pkg/bottin" "github.com/jackc/pgx/v5/pgxpool" ) // Entry func main() { // Start commandline parsing then call `run` Execute() } func run(ctx context.Context, cfg Config) error { select { case <-ctx.Done(): return ctx.Err() default: bottinClient := bottin.APIClient{Caller: voki.New( http.DefaultClient, cfg.Bottin.Host, cfg.Bottin.Key, cfg.Bottin.Port, func() string { if cfg.Bottin.TLS.Enabled { return "https" } else { return "http" } }(), )} // connect to db dbPool, err := pgxpool.New(ctx, "postgres://agendas:agendas@localhost:5432/agendas") if err != nil { return err } defer dbPool.Close() dbClient := DBClient{Pool: dbPool} if err := RunServer(ctx, cfg, &bottinClient, &dbClient); err != nil && err != http.ErrServerClosed { return err } return nil } }