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()) }