some little fixes + drone ci
This commit is contained in:
		
							parent
							
								
									3b0f69dc46
								
							
						
					
					
						commit
						6b332f7254
					
				|  | @ -0,0 +1,19 @@ | |||
| pipeline: | ||||
|   test: | ||||
|     image: golang:latest | ||||
|     commands: | ||||
|       - go get -d -t ./... | ||||
|       - go get -u github.com/mattn/goveralls | ||||
|       - go get -u golang.org/x/tools/cmd/cover | ||||
|       - ./.test-coverage | ||||
|   codestyle: | ||||
|     image: golang:latest | ||||
|     commands: | ||||
|       - go get github.com/client9/misspell/cmd/misspell | ||||
|       - misspell -error . | ||||
|       - if [ -n "$(gofmt -s -l .)" ]; then echo "Go code is not formatted, run 'gofmt -s -w .'" >&2; exit 1; fi | ||||
|   test-race: | ||||
|     image: golang:latest | ||||
|     commands: | ||||
|       - go get -d -t ./... | ||||
|       - go test -v -cover --race ./... | ||||
|  | @ -1,2 +1,7 @@ | |||
| # golang-lib [](https://travis-ci.org/genofire/golang-lib) [](https://circleci.com/gh/genofire/golang-lib/tree/master) [](https://coveralls.io/github/genofire/golang-lib?branch=master) [](https://goreportcard.com/report/dev.sum7.eu/genofire/golang-lib) [](https://godoc.org/dev.sum7.eu/genofire/golang-lib) | ||||
| # golang-lib | ||||
| [](https://ci.sum7.eu/genofire/golang-lib) | ||||
| [](https://travis-ci.org/genofire/golang-lib) [](https://circleci.com/gh/genofire/golang-lib/tree/master) | ||||
| [](https://coveralls.io/github/genofire/golang-lib?branch=master) | ||||
| [](https://goreportcard.com/report/dev.sum7.eu/genofire/golang-lib) | ||||
| [](https://godoc.org/dev.sum7.eu/genofire/golang-lib) | ||||
| some packages collected for easy and often used functions | ||||
|  |  | |||
							
								
								
									
										13
									
								
								file/main.go
								
								
								
								
							
							
						
						
									
										13
									
								
								file/main.go
								
								
								
								
							|  | @ -15,8 +15,7 @@ func ReadTOML(path string, data interface{}) error { | |||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
| 	err = toml.Unmarshal(file, data) | ||||
| 	if err != nil { | ||||
| 	if err := toml.Unmarshal(file, data); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
|  | @ -30,8 +29,7 @@ func ReadJSON(path string, data interface{}) error { | |||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
| 	err = json.NewDecoder(file).Decode(data) | ||||
| 	if err != nil { | ||||
| 	if err := json.NewDecoder(file).Decode(data); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
|  | @ -42,17 +40,16 @@ func ReadJSON(path string, data interface{}) error { | |||
| func SaveJSON(outputFile string, data interface{}) error { | ||||
| 	tmpFile := outputFile + ".tmp" | ||||
| 
 | ||||
| 	f, err := os.OpenFile(tmpFile, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0644) | ||||
| 	file, err := os.OpenFile(tmpFile, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0644) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
| 	err = json.NewEncoder(f).Encode(data) | ||||
| 	if err != nil { | ||||
| 	if err := json.NewEncoder(file).Encode(data); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
| 	f.Close() | ||||
| 	file.Close() | ||||
| 	if err := os.Rename(tmpFile, outputFile); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
|  |  | |||
|  | @ -10,6 +10,6 @@ func NewSaveJSONWorker(repeat time.Duration, path string, data interface{}) *wor | |||
| 	saveWorker := worker.NewWorker(repeat, func() { | ||||
| 		SaveJSON(path, data) | ||||
| 	}) | ||||
| 	go saveWorker.Start() | ||||
| 	saveWorker.Start() | ||||
| 	return saveWorker | ||||
| } | ||||
|  |  | |||
|  | @ -11,7 +11,7 @@ import ( | |||
| // Function to read data from a http request via json format (input)
 | ||||
| func Read(r *http.Request, to interface{}) (err error) { | ||||
| 	if !strings.Contains(r.Header.Get("Content-Type"), "application/json") { | ||||
| 		err = errors.New("no json request recieved") | ||||
| 		err = errors.New("no json request received") | ||||
| 		return | ||||
| 	} | ||||
| 	err = json.NewDecoder(r.Body).Decode(to) | ||||
|  |  | |||
|  | @ -8,7 +8,6 @@ import ( | |||
| ) | ||||
| 
 | ||||
| // Function to test the logging
 | ||||
| // Input: pointer to teh testing object
 | ||||
| func TestGetIP(t *testing.T) { | ||||
| 	assertion := assert.New(t) | ||||
| 
 | ||||
|  |  | |||
|  | @ -76,6 +76,8 @@ func (s *SessionManager) Remove(c *Client) (client bool, session bool) { | |||
| } | ||||
| 
 | ||||
| func (s *SessionManager) Send(id uuid.UUID, msg *Message) { | ||||
| 	s.Lock() | ||||
| 	defer s.Unlock() | ||||
| 	clients := s.sessionToClient[id] | ||||
| 	for _, c := range clients { | ||||
| 		c.Write(msg) | ||||
|  |  | |||
|  | @ -28,17 +28,19 @@ func NewWorker(every time.Duration, f func()) (w *Worker) { | |||
| // (please us it as a go routine with go w.Start())
 | ||||
| func (w *Worker) Start() { | ||||
| 	w.wg.Add(1) | ||||
| 	ticker := time.NewTicker(w.every) | ||||
| 	for { | ||||
| 		select { | ||||
| 		case <-ticker.C: | ||||
| 			w.run() | ||||
| 		case <-w.quit: | ||||
| 			ticker.Stop() | ||||
| 			w.wg.Done() | ||||
| 			return | ||||
| 	go func() { | ||||
| 		defer w.wg.Done() | ||||
| 		ticker := time.NewTicker(w.every) | ||||
| 		for { | ||||
| 			select { | ||||
| 			case <-ticker.C: | ||||
| 				w.run() | ||||
| 			case <-w.quit: | ||||
| 				ticker.Stop() | ||||
| 				return | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 	}() | ||||
| } | ||||
| 
 | ||||
| // Function to stop the Worker
 | ||||
|  |  | |||
|  | @ -15,9 +15,9 @@ func TestWorker(t *testing.T) { | |||
| 	runtime := 0 | ||||
| 
 | ||||
| 	w := NewWorker(time.Duration(5)*time.Millisecond, func() { | ||||
| 		runtime = runtime + 1 | ||||
| 		runtime++ | ||||
| 	}) | ||||
| 	go w.Start() | ||||
| 	w.Start() | ||||
| 	time.Sleep(time.Duration(18) * time.Millisecond) | ||||
| 	w.Close() | ||||
| 	time.Sleep(time.Duration(18) * time.Millisecond) | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue