cake-order-tracker/main.go
2025-08-06 19:24:23 +02:00

60 lines
1,004 B
Go

package main
import (
_ "embed"
"log"
"net/http"
"time"
"github.com/Bronku/iroon/server"
"github.com/BurntSushi/toml"
)
type config struct {
Database struct {
File string
}
Server struct {
Addr string
ReadHeaderTimeout time.Duration
}
}
//go:embed config.default.toml
var defaultConfig string
func main() {
// load config
var conf config
_, err := toml.Decode(defaultConfig, &conf)
if err != nil {
log.Fatal(err)
}
_, err = toml.DecodeFile("config.toml", &conf)
if err != nil {
log.Println("using default config")
}
// load database
db, err := store.loadStore(conf.Database.File)
if err != nil {
log.Panic(err)
}
// load server
h := server.New(db)
var handler http.Handler = h
log.Println("starting server")
// start server
server := &http.Server{
Handler: handler,
Addr: conf.Server.Addr,
ReadHeaderTimeout: conf.Server.ReadHeaderTimeout,
}
err = server.ListenAndServe()
if err != nil {
log.Fatal(err)
}
}