main.go

 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}