feat(mod/dashboard): add cleaner urls for stats and browser

you can hit them at:

- http://localhost:4001/etcd/mod/dashboard/stats
- http://localhost:4001/etcd/mod/dashboard/browser
This commit is contained in:
Brandon Philips 2013-10-10 11:32:39 -07:00
parent 1d6a6d20d1
commit 05202c9ce9

View File

@ -5,25 +5,32 @@ import (
"fmt" "fmt"
"net/http" "net/http"
"os" "os"
"path"
"time" "time"
"github.com/coreos/etcd/mod/dashboard/resources" "github.com/coreos/etcd/mod/dashboard/resources"
) )
func memoryFileServer(w http.ResponseWriter, req *http.Request) { func memoryFileServer(w http.ResponseWriter, req *http.Request) {
path := req.URL.Path upath := req.URL.Path
if len(path) == 0 { if len(upath) == 0 {
path = "index.html" upath = "index.html"
} }
b, ok := resources.File("/" + path) // TODO: use the new mux to do this work
dir, file := path.Split(upath)
if file == "browser" || file == "stats" {
file = file + ".html"
}
upath = path.Join(dir, file)
b, ok := resources.File("/" + upath)
if ok == false { if ok == false {
http.Error(w, path+": File not found", http.StatusNotFound) http.Error(w, upath+": File not found", http.StatusNotFound)
return return
} }
http.ServeContent(w, req, path, time.Time{}, bytes.NewReader(b)) http.ServeContent(w, req, upath, time.Time{}, bytes.NewReader(b))
return return
} }