39 lines
1,006 B
Go
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))
|
|
}
|