package main import ( "html/template" "log" "net/http" "os" "strings" "meutel.net/meutel/go-examples/photoblog/admin" "meutel.net/meutel/go-examples/photoblog/photo" "github.com/gorilla/sessions" ) func main() { tpl, err := template.ParseGlob("templates/*.html") if err != nil { log.Fatalln(err) } dataInfo, err := os.Stat("data") if !dataInfo.IsDir() { log.Fatalln("data is not a directory") } data, err := os.Open("data") if err != nil { log.Fatalln(err) } defer data.Close() // FIXME config file app := photo.PhotoBlog{ admin.AuthCookie{ Templates: tpl, Store: sessions.NewCookieStore([]byte("flQ6QzM/c3Jtdl9ycDx6OXRIfFgK")), DataDir: data, PasswordSecret: "d2xnNSwoREQhfSxBVDQ0bF0yb2AK", }, } http.HandleFunc("/", func(res http.ResponseWriter, req *http.Request) { if strings.HasPrefix(req.RequestURI, "/data") { http.StripPrefix("/data/", http.FileServer(http.Dir(data.Name()))).ServeHTTP(res, req) } else { app.HomePage(res, req) } }) http.HandleFunc("/upload", app.UploadPage) http.HandleFunc("/login", app.LoginPage) http.HandleFunc("/logout", app.LogoutPage) http.ListenAndServeTLS(":9443", "../cert.pem", "../key.pem", nil) }