#!/bin/sh echo "Checking code quality (you want to see no output here)" echo "" echo "" echo "Linting:" staticcheck ./... # In the future we should enable this by default. However, there are a few false positives that make this # too noisy right now, specifically assigning nil to initialize slices (safe), and using go internal context channels assigned # nil (also safe). # We also have one file infinite_channel.go written in a way that static analysis cannot reason about easily. So it is explictly # ignored. # nilaway -exclude-file-docstrings="nolint:nilaway" ./... echo "Time to format" gofmt -l -s -w . # ineffassign (https://github.com/gordonklaus/ineffassign) echo "Checking for ineffectual assignment of errors (unchecked errors...)" ineffassign ./.. # misspell (https://github.com/client9/misspell/cmd/misspell) echo "Checking for misspelled words..." misspell . | grep -v "testing/" | grep -v "vendor/" | grep -v "go.sum" | grep -v ".idea"