cake-order-tracker/main.go
2026-06-16 14:06:45 +02:00

39 lines
1,006 B
Go

package main
//go:generate go tool templ generate
import (
"flag"
"fmt"
"log"
"net/http"
"git.bronku.xyz/bronku/cake-order-tracker/logging"
"git.bronku.xyz/bronku/cake-order-tracker/server"
"git.bronku.xyz/bronku/cake-order-tracker/store"
)
func main() {
dev := flag.Bool("dev", false, "run in dev mode with in-memory database and seed data")
db := flag.String("db", "./foo.db", "path to the SQLite database file (ignored in dev mode)")
host := flag.String("host", "127.0.0.1", "address to listen on")
port := flag.Int("port", 8080, "port to listen on")
flag.Parse()
var s *store.Store
if *dev {
log.Println("dev mode: using in-memory database with seed data")
s = store.OpenStore("file:memdb1?mode=memory&cache=shared")
seed(s)
} else {
s = store.OpenStore(*db)
}
defer s.Close()
var h http.Handler = server.New(s)
h = logging.Middleware(h)
addr := fmt.Sprintf("%s:%d", *host, *port)
log.Printf("starting server on %s", addr)
log.Fatal(http.ListenAndServe(addr, h))
}