Newer
Older
)
//go:embed templates/*.tpl
var templateFS embed.FS
//go:embed static/*
var staticFS embed.FS
func httpError(w http.ResponseWriter, msg string, err error, status int) {
if err != nil {
msg += ": " + err.Error()
}
log.Println(msg)
http.Error(w, msg, status)
}
func logRequest(r *http.Request) {
log.Println("handling", r.Method, r.URL, "from", r.RemoteAddr, "by", auth.Get(r))
dbPath := flag.String("db", "vino.db", "Path to database file")
listenAddr := flag.String("listen", "127.0.0.1:7878", "Listening address")
flag.Parse()
db, err := bolt.Open(*dbPath, 0644, nil)
if err != nil {
log.Fatalln("can't open DB:", err)
}
defer db.Close()
err = initDB(db)
if err != nil {
log.Fatalln("can't initialize DB:", err)
}
http.HandleFunc("/favicon.ico", http.NotFound)
http.HandleFunc("/details/img", auth.Require(http.HandlerFunc(handler.img), ap))
http.HandleFunc("/details/", auth.Require(http.HandlerFunc(handler.details), ap))
http.HandleFunc("/user/", auth.Require(http.HandlerFunc(handler.user), ap))
http.HandleFunc("/", auth.Require(http.HandlerFunc(handler.index), ap))
log.Printf("here we go, listening on http://%s", *listenAddr)