summaryrefslogtreecommitdiff
path: root/cmd/sparkled/main.go
blob: cf99f4ff4fa7f1682de0971353c6daed8a722cf9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package main

import (
	"log"
	"net/http"

	"github.com/xlgmokha/x/pkg/env"
	"github.com/xlgmokha/x/pkg/ioc"
	"gitlab.com/mokhax/sparkled/pkg/db"
	"gitlab.com/mokhax/sparkled/pkg/web"
)

func init() {
	ioc.RegisterSingleton[db.Repository](ioc.Default, func() db.Repository {
		return db.NewRepository()
	})
	ioc.RegisterSingleton[*web.Server](ioc.Default, func() *web.Server {
		return web.New(ioc.MustResolve[db.Repository](ioc.Default))
	})
}

func main() {
	bindAddr := env.Fetch("BIND_ADDR", ":http")
	log.Printf("Listening on %v\n", bindAddr)

	log.Fatal(http.ListenAndServe(
		bindAddr,
		ioc.MustResolve[*web.Server](ioc.Default),
	))
}