1package main
2
3import (
4 "embed"
5 "fmt"
6 "log"
7 "net/http"
8
9 flag "github.com/spf13/pflag"
10)
11
12//go:embed templates
13var templates embed.FS
14
15var (
16 flagListen *string = flag.StringP("listen", "l", "127.0.0.1:2857", "Host and port umu will listen on")
17 flagConfig *string = flag.StringP("config", "c", "config.yaml", "Path to config file")
18)
19
20func init() {
21 flag.Parse()
22 fmt.Println("Listening on", *flagListen)
23 fmt.Println("Reading config at", *flagConfig)
24}
25
26func main() {
27 mux := http.NewServeMux()
28
29 httpServer := &http.Server{
30 Addr: *flagListen,
31 Handler: mux,
32 }
33
34 mux.HandleFunc("/", root)
35 mux.HandleFunc("/login", login)
36 mux.HandleFunc("/logout", logout)
37 mux.HandleFunc("/create", create)
38 mux.HandleFunc("/delete", delete)
39 mux.HandleFunc("/edit", edit)
40
41 if err := httpServer.ListenAndServe(); err == http.ErrServerClosed {
42 log.Println("Web server closed")
43 } else {
44 log.Fatalln(err)
45 }
46}