Print all handlers on start-up

This commit is contained in:
Jithin James 2017-10-16 16:25:56 +05:30
parent b8b68314fa
commit 4afad25189
2 changed files with 21 additions and 1 deletions

View File

@ -6,8 +6,14 @@ package gin
import (
"bytes"
"fmt"
"html/template"
"log"
"os"
"reflect"
"runtime"
"golang.org/x/crypto/ssh/terminal"
)
func init() {
@ -22,7 +28,21 @@ func IsDebugging() bool {
func debugPrintRoute(httpMethod, absolutePath string, handlers HandlersChain) {
if IsDebugging() {
s := "<<<<<<<\tHandlers Running\t>>>>>>>"
w := 100
if terminal.IsTerminal(int(os.Stdout.Fd())) {
w, _, _ = terminal.GetSize(int(os.Stdout.Fd()))
} else {
fmt.Println("Couldn't get terminal size. Using default value...")
}
fmt.Printf(fmt.Sprintf("%%%ds\n", w/2), s)
// fmt.Printf(fmt.Sprintf("%%-%ds", w/2), fmt.Sprintf(fmt.Sprintf("%%%ds\n", w/2), s))
for i := 0; i < len(handlers); i += 2 {
fmt.Printf(" | %-50s | %-50s |\n", runtime.FuncForPC(reflect.ValueOf(handlers[i]).Pointer()).Name(), runtime.FuncForPC(reflect.ValueOf(handlers[i+1]).Pointer()).Name())
}
nuHandlers := len(handlers)
fmt.Printf("Total %d handlers found...\n", nuHandlers)
handlerName := nameOfFunction(handlers.Last())
debugPrint("%-6s %-25s --> %s (%d handlers)\n", httpMethod, absolutePath, handlerName, nuHandlers)
}

2
doc.go
View File

@ -3,4 +3,4 @@ Package gin implements a HTTP web framework called gin.
See https://gin-gonic.github.io/gin/ for more information about gin.
*/
package gin // import "github.com/gin-gonic/gin"
package gin // import "github.com/jithinjk/gin"