github.com/macb/etcd@v0.3.1-0.20140227003422-a60481c6b1a0/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 r.PathPrefix("/dashboard/").Handler(http.StripPrefix("/dashboard/", dashboard.HttpHandler())) 25 26 r.PathPrefix("/v2/lock").Handler(http.StripPrefix("/v2/lock", lock2.NewHandler(addr))) 27 r.PathPrefix("/v2/leader").Handler(http.StripPrefix("/v2/leader", leader2.NewHandler(addr))) 28 return r 29 }