Files
hspguard/cmd/hspguard/main.go

51 lines
1.0 KiB
Go

package main
import (
"context"
"fmt"
"log"
"gitea.local/admin/hspguard/cmd/hspguard/api"
"gitea.local/admin/hspguard/internal/config"
"gitea.local/admin/hspguard/internal/repository"
"gitea.local/admin/hspguard/internal/storage"
"gitea.local/admin/hspguard/internal/user"
"github.com/jackc/pgx/v5/pgxpool"
"github.com/joho/godotenv"
)
func main() {
err := godotenv.Load()
if err != nil {
log.Fatalln("ERR: Failed to load environment variables:", err)
return
}
var cfg config.AppConfig
err = config.LoadEnv(&cfg)
if err != nil {
log.Fatal(err)
return
}
ctx := context.Background()
conn, err := pgxpool.New(ctx, cfg.DatabaseURL)
if err != nil {
log.Fatalln("ERR: Failed to connect to db:", err)
return
}
repo := repository.New(conn)
fStorage := storage.New(&cfg)
user.EnsureAdminUser(ctx, &cfg, repo)
server := api.NewAPIServer(fmt.Sprintf("%s:%s", cfg.Host, cfg.Port), repo, fStorage, &cfg)
if err := server.Run(); err != nil {
log.Fatalln("ERR: Failed to start server:", err)
}
}