package main import ( "log" "net/http" "os" "github.com/oy/openyield/web/handlers" "github.com/oy/openyield/web/store" ) func runServer() { port := os.Getenv("PORT") if port == "" { port = "8080" } mux := http.NewServeMux() srv, err := handlers.New(store.NewStore(), "web/templates") if err != nil { log.Fatalf("init handlers: %v", err) } srv.Register(mux) // Home page (rendered via the handlers' page machinery too). mux.HandleFunc("GET /", func(w http.ResponseWriter, r *http.Request) { if r.URL.Path != "/" { http.NotFound(w, r) return } srv.RenderHome(w, nil) }) mux.Handle("GET /static/", http.StripPrefix("/static/", http.FileServer(http.Dir("web/static")))) server := &http.Server{Addr: ":" + port, Handler: mux} log.Printf("OpenYield web on :%s", port) if err := server.ListenAndServe(); err != nil { log.Fatalf("server: %v", err) } }