github.com/sym3tri/etcd@v0.2.1-0.20140422215517-a563d82f95d6/mod/mod.go (about) 1 // mod is the entry point to all of the etcd modules. 2 package mod 3 4 import ( 5 "net/http" 6 "path" 7 8 "github.com/coreos/etcd/mod/dashboard" 9 leader2 "github.com/coreos/etcd/mod/leader/v2" 10 lock2 "github.com/coreos/etcd/mod/lock/v2" 11 "github.com/coreos/etcd/third_party/github.com/gorilla/mux" 12 ) 13 14 var ServeMux *http.Handler 15 16 func addSlash(w http.ResponseWriter, req *http.Request) { 17 http.Redirect(w, req, path.Join("mod", req.URL.Path)+"/", 302) 18 return 19 } 20 21 func HttpHandler(addr string) http.Handler { 22 r := mux.NewRouter() 23 r.HandleFunc("/dashboard", addSlash) 24 25 r.PathPrefix("/dashboard/static/").Handler(http.StripPrefix("/dashboard/static/", dashboard.HttpHandler())) 26 r.HandleFunc("/dashboard{path:.*}", dashboard.IndexPage) 27 28 r.PathPrefix("/v2/lock").Handler(http.StripPrefix("/v2/lock", lock2.NewHandler(addr))) 29 r.PathPrefix("/v2/leader").Handler(http.StripPrefix("/v2/leader", leader2.NewHandler(addr))) 30 return r 31 }