// This file implements a stand-alone blog server. package main import ( "flag" "log" "net/http" "net/http/fcgi" _ "net/http/pprof" "golang.org/x/tools/blog" ) var reload = flag.Bool("reload", false, "reload content on each page load") func init() { flag.Parse() } func main() { l, err := dropPrivAndListen("www", "run/blog.sock") if err != nil { log.Fatal(err) } defer l.Close() if *reload { http.HandleFunc("/", reloadingBlogServer) } else { s, err := blog.NewServer(config) if err != nil { log.Fatal(err) } http.Handle("/", s) } log.Fatal(fcgi.Serve(l, nil)) } // reloadingBlogServer is an handler that restarts the blog server on each page // view. Inefficient; don't enable by default. Handy when editing blog content. func reloadingBlogServer(w http.ResponseWriter, r *http.Request) { s, err := blog.NewServer(config) if err != nil { http.Error(w, err.Error(), 500) return } s.ServeHTTP(w, r) }