diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 000000000..dfce88d72 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,15 @@ +language: go + +go: +- "1.10.x" +- "1.11.x" + +branches: + only: + - master + +script: +- cd g && go test -v ./... + + + diff --git a/README.MD b/README.MD index 85644f723..4a6ecaaea 100644 --- a/README.MD +++ b/README.MD @@ -2,6 +2,8 @@ +# GoFrame [![Build Status](https://travis-ci.org/johng-cn/gf.svg?branch=master)](https://travis-ci.org/johng-cn/gf) [![GoDoc](https://godoc.org/github.com/johng-cn/gf?status.svg)](https://godoc.org/github.com/johng-cn/gf) [![Go Report Card](https://goreportcard.com/badge/github.com/johng-cn/gf)](https://goreportcard.com/report/github.com/johng-cn/gf) + `GF(GoFrame)` is a modular, lightweight, loosely coupled, high performance application development framework written in Go. Supporting graceful server, hot updates, multi-domain, multi-port, multi-service, HTTP/HTTPS, dynamic/hook routing and many more features. Providing a series of core components and dozens of practical modules. # Installation diff --git a/g/crypto/gdes/gdes_test.go b/g/crypto/gdes/gdes_test.go index 00dc2d13b..48dca7da6 100644 --- a/g/crypto/gdes/gdes_test.go +++ b/g/crypto/gdes/gdes_test.go @@ -1,11 +1,11 @@ -package gdes +package gdes_test import ( "testing" "bytes" "encoding/hex" "fmt" - "gitee.com/johng/gf/g/encoding/gdes" + "gitee.com/johng/gf/g/crypto/gdes" ) func TestDesECB(t *testing.T){ diff --git a/g/database/gkafka/gkafka.go b/g/database/gkafka/gkafka.go index 16981fdaa..180aeeae4 100644 --- a/g/database/gkafka/gkafka.go +++ b/g/database/gkafka/gkafka.go @@ -9,11 +9,10 @@ package gkafka import ( "gitee.com/johng/gf/g/os/glog" - "time" - "strings" "gitee.com/johng/gf/third/github.com/Shopify/sarama" "gitee.com/johng/gf/third/github.com/johng-cn/sarama-cluster" - "errors" + "strings" + "time" ) var ( @@ -177,8 +176,6 @@ func (client *Client) Receive() (*Message, error) { case <-notifyChan: } } - - return nil, errors.New("unknown error") } // Send data to kafka in synchronized way. diff --git a/g/encoding/gjson/gjson.go b/g/encoding/gjson/gjson.go index e5b5b6d2f..12c5baf0e 100644 --- a/g/encoding/gjson/gjson.go +++ b/g/encoding/gjson/gjson.go @@ -487,7 +487,6 @@ func (j *Json) convertValue(value interface{}) interface{} { v, _ := Decode(b) return v } - return value } // 用于Set方法中,对指针指向的内存地址进行赋值 diff --git a/g/g_object.go b/g/g_object.go index 012cf1a16..19ba89fb6 100644 --- a/g/g_object.go +++ b/g/g_object.go @@ -23,12 +23,12 @@ func Server(name...interface{}) *ghttp.Server { } // TCPServer单例对象 -func TcpServer(name...interface{}) *gtcp.Server { +func TCPServer(name...interface{}) *gtcp.Server { return gtcp.GetServer(name...) } // UDPServer单例对象 -func UdpServer(name...interface{}) *gudp.Server { +func UDPServer(name...interface{}) *gudp.Server { return gudp.GetServer(name...) } diff --git a/g/net/ghttp/ghttp_server_router.go b/g/net/ghttp/ghttp_server_router.go index 819e55c7c..44029cdb9 100644 --- a/g/net/ghttp/ghttp_server_router.go +++ b/g/net/ghttp/ghttp_server_router.go @@ -293,7 +293,6 @@ func (s *Server) patternToRegRule(rule string) (regrule string, names []string) regrule += `/[^/]+` break } - fallthrough case '*': if len(v) > 1 { regrule += `/{0,1}(.*)` @@ -303,7 +302,6 @@ func (s *Server) patternToRegRule(rule string) (regrule string, names []string) regrule += `/{0,1}.*` break } - fallthrough default: // 特殊字符替换 v = gstr.ReplaceByMap(v, map[string]string{ diff --git a/g/net/ghttp/ghttp_server_router_hook.go b/g/net/ghttp/ghttp_server_router_hook.go index fe86ae9b0..87abd6d53 100644 --- a/g/net/ghttp/ghttp_server_router_hook.go +++ b/g/net/ghttp/ghttp_server_router_hook.go @@ -25,7 +25,6 @@ func (s *Server)BindHookHandler(pattern string, hook string, handler HandlerFunc fname : "", faddr : handler, }, hook) - return nil } // 通过map批量绑定回调函数 diff --git a/g/net/gtcp/gtcp_server.go b/g/net/gtcp/gtcp_server.go index c410c8108..ac16ff922 100644 --- a/g/net/gtcp/gtcp_server.go +++ b/g/net/gtcp/gtcp_server.go @@ -82,5 +82,4 @@ func (s *Server) Run() error { go s.handler(NewConnByNetConn(conn)) } } - return nil } diff --git a/g/net/gudp/gudp_conn.go b/g/net/gudp/gudp_conn.go index c6bd41b23..c14b9a31b 100644 --- a/g/net/gudp/gudp_conn.go +++ b/g/net/gudp/gudp_conn.go @@ -85,7 +85,6 @@ func (c *Conn) Send(data []byte, retry...Retry) error { } } } - return nil } // 接收数据 diff --git a/g/net/gudp/gudp_server.go b/g/net/gudp/gudp_server.go index 3931b1ccc..452c03f21 100644 --- a/g/net/gudp/gudp_server.go +++ b/g/net/gudp/gudp_server.go @@ -77,5 +77,4 @@ func (s *Server) Run() error { for { s.handler(NewConnByNetConn(conn)) } - return nil } diff --git a/g/os/gfile/gfile_contents.go b/g/os/gfile/gfile_contents.go index 91af0bf0a..a76fbde39 100644 --- a/g/os/gfile/gfile_contents.go +++ b/g/os/gfile/gfile_contents.go @@ -105,8 +105,6 @@ func GetNextCharOffsetByPath(path string, char byte, start int64) int64 { if f, err := OpenWithFlagPerm(path, os.O_RDONLY, gDEFAULT_PERM); err == nil { defer f.Close() return GetNextCharOffset(f, char, start) - } else { - panic(err) } return -1 } @@ -124,8 +122,6 @@ func GetBinContentsTilCharByPath(path string, char byte, start int64) ([]byte, i if f, err := OpenWithFlagPerm(path, os.O_RDONLY, gDEFAULT_PERM); err == nil { defer f.Close() return GetBinContentsTilChar(f, char, start) - } else { - panic(err) } return nil, -1 } @@ -144,8 +140,6 @@ func GetBinContentsByTwoOffsetsByPath(path string, start int64, end int64) []byt if f, err := OpenWithFlagPerm(path, os.O_RDONLY, gDEFAULT_PERM); err == nil { defer f.Close() return GetBinContentsByTwoOffsets(f, start, end) - } else { - panic(err) } return nil } \ No newline at end of file diff --git a/g/os/gfsnotify/gfsnotify_watcher_loop.go b/g/os/gfsnotify/gfsnotify_watcher_loop.go index 76b526fcb..9f45d5dc8 100644 --- a/g/os/gfsnotify/gfsnotify_watcher_loop.go +++ b/g/os/gfsnotify/gfsnotify_watcher_loop.go @@ -9,6 +9,7 @@ package gfsnotify import ( "fmt" "gitee.com/johng/gf/g/container/glist" + "os" ) // 监听循环 @@ -33,7 +34,7 @@ func (w *Watcher) startWatchLoop() { }, REPEAT_EVENT_FILTER_INTERVAL) case err := <- w.watcher.Errors: - fmt.Errorf("error: %s\n" + err.Error()); + fmt.Fprintf(os.Stderr, "error: %s\n" + err.Error()) } } }() diff --git a/g/os/gproc/gproc.go b/g/os/gproc/gproc.go index c44dd29cc..ecffc822f 100644 --- a/g/os/gproc/gproc.go +++ b/g/os/gproc/gproc.go @@ -121,7 +121,6 @@ func getShell() string { } return path } - return "" } // 获取当前系统默认shell执行指令的option参数 @@ -132,7 +131,6 @@ func getShellOption() string { default: return "-c" } - return "" } // 从环境变量PATH中搜索可执行文件 diff --git a/g/os/gproc/gproc_comm_receive.go b/g/os/gproc/gproc_comm_receive.go index 2a097d254..e3fa94dd5 100644 --- a/g/os/gproc/gproc_comm_receive.go +++ b/g/os/gproc/gproc_comm_receive.go @@ -62,7 +62,10 @@ func startTcpListening() { // TCP数据通信处理回调函数 func tcpServiceHandler(conn *gtcp.Conn) { - var retry = gtcp.Retry{3, 10} + retry := gtcp.Retry { + Count : 3, + Interval: 10, + } for { var result []byte buffer, err := conn.Recv(-1, retry) diff --git a/g/os/gtime/gtime_time.go b/g/os/gtime/gtime_time.go index cb9c074f7..c334f8b23 100644 --- a/g/os/gtime/gtime_time.go +++ b/g/os/gtime/gtime_time.go @@ -123,7 +123,7 @@ func (t *Time) ToZone(zone string) *Time { t.Time = t.Time.In(l) return t } else { - panic(err) + //panic(err) return nil } } diff --git a/g/util/gutil/gutil.go b/g/util/gutil/gutil.go index 5d1ed1288..e5baa53e4 100644 --- a/g/util/gutil/gutil.go +++ b/g/util/gutil/gutil.go @@ -11,6 +11,7 @@ import ( "fmt" "bytes" "encoding/json" + "os" "reflect" "gitee.com/johng/gf/g/util/gconv" "runtime" @@ -43,7 +44,7 @@ func Dump(i...interface{}) { if err := encoder.Encode(v); err == nil { fmt.Print(buffer.String()) } else { - fmt.Errorf("%s", err.Error()) + fmt.Fprintln(os.Stderr, err.Error()) } } //fmt.Println() diff --git a/geg/net/gtcp/gtcp_conn.go b/geg/net/gtcp/gtcp_conn.go index 17cc84cc0..dae8b3e4e 100644 --- a/geg/net/gtcp/gtcp_conn.go +++ b/geg/net/gtcp/gtcp_conn.go @@ -5,6 +5,7 @@ import ( "bytes" "gitee.com/johng/gf/g/net/gtcp" "gitee.com/johng/gf/g/util/gconv" + "os" ) func main() { @@ -39,7 +40,7 @@ func main() { break } if err != nil { - fmt.Errorf("ERROR: %s\n", err.Error()) + fmt.Fprintf(os.Stderr, "ERROR: %s\n", err.Error()) break } } diff --git a/geg/net/gtcp/gtcp_func.go b/geg/net/gtcp/gtcp_func.go index a8acc7744..135193f27 100644 --- a/geg/net/gtcp/gtcp_func.go +++ b/geg/net/gtcp/gtcp_func.go @@ -3,6 +3,7 @@ package main import ( "gitee.com/johng/gf/g/net/gtcp" "fmt" + "os" ) func main() { @@ -11,6 +12,6 @@ func main() { fmt.Println(string(data)) } if err != nil { - fmt.Errorf("ERROR: %s\n", err.Error()) + fmt.Fprintf(os.Stderr, "ERROR: %s\n", err.Error()) } } \ No newline at end of file diff --git a/third/github.com/ghodss/yaml/yaml.go b/third/github.com/ghodss/yaml/yaml.go index f733f138b..68f7ceb3b 100644 --- a/third/github.com/ghodss/yaml/yaml.go +++ b/third/github.com/ghodss/yaml/yaml.go @@ -272,6 +272,4 @@ func convertToJSONableObject(yamlObj interface{}, jsonTarget *reflect.Value) (in } return yamlObj, nil } - - return nil, nil }