package main import ( "flag" "net/http" "github.com/golang/glog" "github.com/gorilla/mux" "xinu.tv/email/db" ) var addr = flag.String("addr", ":8080", "address:port to listen on") type handler struct { c *db.Conn } func (h *handler) OriginalHandler(w http.ResponseWriter, r *http.Request) { var blob []byte hash := mux.Vars(r)["hash"] if err := h.c.OriginalBlobByHash(hash, &blob); err != nil { glog.Fatal(err) } w.Header().Set("Content-Type", "text/plain") if _, err := w.Write(blob); err != nil { glog.Error(err) } } func main() { defer glog.Flush() flag.Parse() c, err := db.NewConn("") if err != nil { glog.Fatal(err) } h := &handler{c: c} r := mux.NewRouter() r.HandleFunc("/raw/{hash}", h.OriginalHandler) glog.Fatal(http.ListenAndServe(*addr, r)) }