diff --git a/Makefile b/Makefile index 7638bec..a6d0826 100644 --- a/Makefile +++ b/Makefile @@ -24,5 +24,9 @@ $(KEY): run: $(BINARY) $(KEY) ./$(BINARY) -i $(KEY) --bind ":$(PORT)" -vv +debug: $(BINARY) $(KEY) + ./$(BINARY) --pprof 6060 -i $(KEY) --bind ":$(PORT)" -vv + + test: - go test . + go test . \ No newline at end of file diff --git a/cmd.go b/cmd.go index 9f5ea84..ab41788 100644 --- a/cmd.go +++ b/cmd.go @@ -7,11 +7,13 @@ import ( "os" "os/signal" "strings" + "net/http" "github.com/alexcesaro/log" "github.com/alexcesaro/log/golog" "github.com/jessevdk/go-flags" ) +import _ "net/http/pprof" // Options contains the flag options type Options struct { @@ -21,6 +23,7 @@ type Options struct { Admin []string `long:"admin" description:"Fingerprint of pubkey to mark as admin."` Whitelist string `long:"whitelist" description:"Optional file of pubkey fingerprints that are allowed to connect"` Motd string `long:"motd" description:"Message of the Day file (optional)"` + Pprof int `long:"pprof" description:"enable http server for pprof"` } var logLevels = []log.Level{ @@ -32,7 +35,6 @@ var logLevels = []log.Level{ func main() { options := Options{} parser := flags.NewParser(&options, flags.Default) - p, err := parser.Parse() if err != nil { if p == nil { @@ -41,6 +43,12 @@ func main() { return } + if options.Pprof != 0 { + go func(){ + fmt.Println(http.ListenAndServe(fmt.Sprintf("localhost:%d", options.Pprof), nil)) + }() + } + // Initialize seed for random colors RandomColorInit()