diff --git a/.golangci.yml b/.golangci.yml new file mode 100644 index 0000000..15eb6ef --- /dev/null +++ b/.golangci.yml @@ -0,0 +1,21 @@ +run: + timeout: 5m + linters: + enable: + - vet + - vetshadow + - typecheck + - deadcode + - gocyclo + - golint + - varcheck + - structcheck + - maligned + - ineffassign + - misspell + - unparam + - goimports + - goconst + - unconvert + - errcheck + - interfacer diff --git a/.travis.yml b/.travis.yml index 13585d4..46997ab 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,9 +1,7 @@ language: go go: - - 1.10.x + - 1.13.10 install: - - go get github.com/golang/lint/golint - - go get github.com/fzipp/gocyclo - - go get github.com/client9/misspell/... - - go get github.com/gordonklaus/ineffassign + - go get github.com/golangci/golangci-lint/cmd/golangci-lint@v1.24.0 + - go build script: ./hooks/pre-commit diff --git a/client.go b/client.go index 7625a1c..68a7bdd 100644 --- a/client.go +++ b/client.go @@ -55,10 +55,7 @@ func (e HTTPError) Error() string { // BuildURL builds a URL with the Client's homserver/prefix/access_token set already. func (cli *Client) BuildURL(urlPath ...string) string { - ps := []string{cli.Prefix} - for _, p := range urlPath { - ps = append(ps, p) - } + ps := append([]string{cli.Prefix}, urlPath...) return cli.BuildBaseURL(ps...) } diff --git a/client_examples_test.go b/client_examples_test.go index e3c0f09..d6b27fc 100644 --- a/client_examples_test.go +++ b/client_examples_test.go @@ -46,7 +46,7 @@ func Example_customInterfaces() { cli.Client = http.DefaultClient // Once you call a function, you can't safely change the interfaces. - cli.SendText("!foo:bar", "Down the rabbit hole") + _, _ = cli.SendText("!foo:bar", "Down the rabbit hole") } func ExampleClient_BuildURLWithQuery() { diff --git a/hooks/pre-commit b/hooks/pre-commit index bb0a27f..bbbede0 100755 --- a/hooks/pre-commit +++ b/hooks/pre-commit @@ -2,9 +2,6 @@ set -eu -golint -misspell --error . - # gofmt doesn't exit with an error code if the files don't match the expected # format. So we have to run it and see if it outputs anything. if gofmt -l -s . 2>&1 | read @@ -18,9 +15,5 @@ then exit 1 fi -ineffassign . - -go fmt -go tool vet --all --shadow . -gocyclo -over 12 . -go test -timeout 5s -test.v +golangci-lint run +go test -timeout 5s . ./... diff --git a/room.go b/room.go index d1d2286..364deab 100644 --- a/room.go +++ b/room.go @@ -31,8 +31,8 @@ func (room Room) UpdateState(event *Event) { // GetStateEvent returns the state event for the given type/state_key combo, or nil. func (room Room) GetStateEvent(eventType string, stateKey string) *Event { - stateEventMap, _ := room.State[eventType] - event, _ := stateEventMap[stateKey] + stateEventMap := room.State[eventType] + event := stateEventMap[stateKey] return event }