From 7f888e3d18ff735eea10b2b3c6dab91ce90134d1 Mon Sep 17 00:00:00 2001 From: Pelle Johnsen Date: Wed, 27 Jan 2016 19:20:58 +0100 Subject: [PATCH 1/8] Add noColor option for console logger - Also added simple test --- logs/console.go | 7 ++++--- logs/console_test.go | 7 +++++++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/logs/console.go b/logs/console.go index 10d8e8b2..871e7972 100644 --- a/logs/console.go +++ b/logs/console.go @@ -47,8 +47,9 @@ var colors = []brush{ // consoleWriter implements LoggerInterface and writes messages to terminal. type consoleWriter struct { - lg *log.Logger - Level int `json:"level"` + lg *log.Logger + Level int `json:"level"` + NoColor bool `json:"noColor"` } // NewConsole create ConsoleWriter returning as LoggerInterface. @@ -75,7 +76,7 @@ func (c *consoleWriter) WriteMsg(when time.Time, msg string, level int) error { return nil } msg = formatLogTime(when) + msg - if runtime.GOOS == "windows" { + if runtime.GOOS == "windows" || c.NoColor { c.lg.Println(msg) return nil } diff --git a/logs/console_test.go b/logs/console_test.go index ce8937d4..45211588 100644 --- a/logs/console_test.go +++ b/logs/console_test.go @@ -42,3 +42,10 @@ func TestConsole(t *testing.T) { log2.SetLogger("console", `{"level":3}`) testConsoleCalls(log2) } + +// Test console without color +func TestConsoleNoColor(t *testing.T) { + log := NewLogger(100) + log.SetLogger("console", `{"noColor":true}`) + testConsoleCalls(log) +} From a0434323982ac73a406177bec245b3286e484378 Mon Sep 17 00:00:00 2001 From: Pelle Johnsen Date: Thu, 28 Jan 2016 07:50:07 +0100 Subject: [PATCH 2/8] Change option name from noColor to color Still same default behavior (with color) --- logs/console.go | 9 +++++---- logs/console_test.go | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/logs/console.go b/logs/console.go index 871e7972..d7ed8d8e 100644 --- a/logs/console.go +++ b/logs/console.go @@ -47,9 +47,9 @@ var colors = []brush{ // consoleWriter implements LoggerInterface and writes messages to terminal. type consoleWriter struct { - lg *log.Logger - Level int `json:"level"` - NoColor bool `json:"noColor"` + lg *log.Logger + Level int `json:"level"` + Color bool `json:"color"` } // NewConsole create ConsoleWriter returning as LoggerInterface. @@ -57,6 +57,7 @@ func NewConsole() Logger { cw := &consoleWriter{ lg: log.New(os.Stdout, "", 0), Level: LevelDebug, + Color: true, } return cw } @@ -76,7 +77,7 @@ func (c *consoleWriter) WriteMsg(when time.Time, msg string, level int) error { return nil } msg = formatLogTime(when) + msg - if runtime.GOOS == "windows" || c.NoColor { + if runtime.GOOS == "windows" || !c.Color { c.lg.Println(msg) return nil } diff --git a/logs/console_test.go b/logs/console_test.go index 45211588..04f2bd7e 100644 --- a/logs/console_test.go +++ b/logs/console_test.go @@ -46,6 +46,6 @@ func TestConsole(t *testing.T) { // Test console without color func TestConsoleNoColor(t *testing.T) { log := NewLogger(100) - log.SetLogger("console", `{"noColor":true}`) + log.SetLogger("console", `{"color":false}`) testConsoleCalls(log) } From 5cd1ed8106bd50d21a641eafd2234b870d7be7df Mon Sep 17 00:00:00 2001 From: astaxie Date: Fri, 29 Jan 2016 00:01:04 +0800 Subject: [PATCH 3/8] add test for tip --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 30ec5d4b..97444ce6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,7 @@ language: go go: + - tip - 1.5.3 - 1.4.3 - 1.3.3 From 0382146c6015b3a4cc482443594f73e45f4abbee Mon Sep 17 00:00:00 2001 From: astaxie Date: Fri, 29 Jan 2016 13:11:11 +0800 Subject: [PATCH 4/8] fix the go vet for go tip --- config.go | 2 +- grace/server.go | 15 +++++++-------- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/config.go b/config.go index 7e2b3ee7..ffe92f06 100644 --- a/config.go +++ b/config.go @@ -319,7 +319,7 @@ func LoadAppConfig(adapterName, configPath string) error { } if !utils.FileExists(absConfigPath) { - return fmt.Errorf("the target config file: %s don't exist!", configPath) + return fmt.Errorf("the target config file: %s don't exist", configPath) } if absConfigPath == appConfigPath { diff --git a/grace/server.go b/grace/server.go index f4512ded..101bda56 100644 --- a/grace/server.go +++ b/grace/server.go @@ -90,16 +90,15 @@ func (srv *Server) ListenAndServeTLS(certFile, keyFile string) (err error) { addr = ":https" } - config := &tls.Config{} - if srv.TLSConfig != nil { - *config = *srv.TLSConfig + if srv.TLSConfig == nil { + srv.TLSConfig = &tls.Config{} } - if config.NextProtos == nil { - config.NextProtos = []string{"http/1.1"} + if srv.TLSConfig.NextProtos == nil { + srv.TLSConfig.NextProtos = []string{"http/1.1"} } - config.Certificates = make([]tls.Certificate, 1) - config.Certificates[0], err = tls.LoadX509KeyPair(certFile, keyFile) + srv.TLSConfig.Certificates = make([]tls.Certificate, 1) + srv.TLSConfig.Certificates[0], err = tls.LoadX509KeyPair(certFile, keyFile) if err != nil { return } @@ -113,7 +112,7 @@ func (srv *Server) ListenAndServeTLS(certFile, keyFile string) (err error) { } srv.tlsInnerListener = newGraceListener(l, srv) - srv.GraceListener = tls.NewListener(srv.tlsInnerListener, config) + srv.GraceListener = tls.NewListener(srv.tlsInnerListener, srv.TLSConfig) if srv.isChild { process, err := os.FindProcess(os.Getppid()) From 09193213a076a0d9cf1784448f8f283acff8a6dd Mon Sep 17 00:00:00 2001 From: astaxie Date: Sun, 31 Jan 2016 23:28:56 +0800 Subject: [PATCH 5/8] add travis hooks --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index 97444ce6..3a6c9f84 100644 --- a/.travis.yml +++ b/.travis.yml @@ -36,3 +36,5 @@ script: - go vet -x ./... - $HOME/gopath/bin/golint ./... - go test -v ./... +notifications: + webhooks: https://hooks.pubu.im/services/z7m9bvybl3rgtg9 From da38cbfe41171010c88d2227fbd55a80e7721b29 Mon Sep 17 00:00:00 2001 From: youngsterxyf Date: Mon, 1 Feb 2016 22:39:41 +0800 Subject: [PATCH 6/8] fix issue #1641 --- error.go | 1 + 1 file changed, 1 insertion(+) diff --git a/error.go b/error.go index 94151dd8..4f48fab2 100644 --- a/error.go +++ b/error.go @@ -424,6 +424,7 @@ func exception(errCode string, ctx *context.Context) { func executeError(err *errorInfo, ctx *context.Context, code int) { if err.errorType == errorTypeHandler { + ctx.ResponseWriter.WriteHeader(code) err.handler(ctx.ResponseWriter, ctx.Request) return } From bb50383aa9a84225d902eaaef73df37ba1d26459 Mon Sep 17 00:00:00 2001 From: Thanh Tran Date: Tue, 2 Feb 2016 11:28:43 +0700 Subject: [PATCH 7/8] Add GroupBy to QuerySeter --- orm/types.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/orm/types.go b/orm/types.go index 5fac5fed..469323ff 100644 --- a/orm/types.go +++ b/orm/types.go @@ -148,6 +148,10 @@ type QuerySeter interface { // add OFFSET value // same as Limit function's args[0] Offset(offset interface{}) QuerySeter + // add GROUP BY expression + // for example: + // qs.GroupBy("id") + GroupBy(exprs ...string) QuerySeter // add ORDER expression. // "column" means ASC, "-column" means DESC. // for example: From 4906b600e3a91d2a99accdf8306bc17a7f7784d6 Mon Sep 17 00:00:00 2001 From: astaxie Date: Tue, 2 Feb 2016 12:43:45 +0800 Subject: [PATCH 8/8] fix the static url with / problem --- template.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/template.go b/template.go index 1b62cf78..7a38630e 100644 --- a/template.go +++ b/template.go @@ -272,7 +272,9 @@ func SetStaticPath(url string, path string) *App { if !strings.HasPrefix(url, "/") { url = "/" + url } - url = strings.TrimRight(url, "/") + if url != "/" { + url = strings.TrimRight(url, "/") + } BConfig.WebConfig.StaticDir[url] = path return BeeApp } @@ -282,7 +284,9 @@ func DelStaticPath(url string) *App { if !strings.HasPrefix(url, "/") { url = "/" + url } - url = strings.TrimRight(url, "/") + if url != "/" { + url = strings.TrimRight(url, "/") + } delete(BConfig.WebConfig.StaticDir, url) return BeeApp }