1
0
mirror of https://github.com/astaxie/beego.git synced 2024-11-25 19:50:55 +00:00

beego:admin add print method

This commit is contained in:
astaxie 2014-06-13 00:08:43 +08:00
parent 117904be73
commit e38a23b30e

View File

@ -121,6 +121,10 @@ func listConf(rw http.ResponseWriter, r *http.Request) {
fmt.Fprintln(rw, "AdminHttpPort:", AdminHttpPort)
case "router":
fmt.Fprintln(rw, "Print all router infomation:")
for method, t := range BeeApp.Handlers.routers {
fmt.Fprintln(rw, "Method:", method)
printTree(rw, t)
}
// @todo print routers
case "filter":
fmt.Fprintln(rw, "Print all filter infomation:")
@ -163,6 +167,26 @@ func listConf(rw http.ResponseWriter, r *http.Request) {
}
}
func printTree(rw http.ResponseWriter, t *Tree) {
for _, tr := range t.fixrouters {
printTree(rw, tr)
}
if t.wildcard != nil {
printTree(rw, t.wildcard)
}
for _, l := range t.leaves {
if v, ok := l.runObject.(*controllerInfo); ok {
if v.routerType == routerTypeBeego {
fmt.Fprintln(rw, v.pattern, v.methods, v.controllerType.Name())
} else if v.routerType == routerTypeRESTFul {
fmt.Fprintln(rw, v.pattern, v.methods)
} else if v.routerType == routerTypeHandler {
fmt.Fprintln(rw, v.pattern, "handler")
}
}
}
}
// ProfIndex is a http.Handler for showing profile command.
// it's in url pattern "/prof" in admin module.
func profIndex(rw http.ResponseWriter, r *http.Request) {