main.go (view raw)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | package main import ( "embed" "flag" "log" "net" "net/http" "strconv" "time" "alin.ovh/elgit/config" "alin.ovh/elgit/routes" ) //go:embed static/* var staticFiles embed.FS func main() { var cfg string flag.StringVar(&cfg, "config", "./config.yaml", "path to config file") flag.Parse() log.SetFlags(log.Lshortfile) c, err := config.Read(cfg) if err != nil { log.Fatal(err) } if err := UnveilPaths([]string{c.Repo.Root}, "r"); err != nil { log.Fatalf("unveil: %s", err) } mux := routes.Handlers(c, staticFiles) addr := net.JoinHostPort(c.Server.Host, strconv.FormatInt(int64(c.Server.Port), 10)) log.Println("starting server on", addr) srv := http.Server{ Addr: addr, Handler: mux, ReadHeaderTimeout: time.Second * 5, } log.Fatal(srv.ListenAndServe()) } |