diff options
Diffstat (limited to '.tool/lint')
-rwxr-xr-x | .tool/lint | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/.tool/lint b/.tool/lint new file mode 100755 index 000000000..a62044255 --- /dev/null +++ b/.tool/lint @@ -0,0 +1,44 @@ +#!/usr/bin/env bash + +set -o errexit +set -o nounset +set -o pipefail + +# Create the linter path for use later +LINTER=${GOPATH}/bin/gometalinter + +# Make sure gometalinter is installed +if [ ! -f ${LINTER} ]; then + echo >&2 "gometalinter must be installed. Please run 'make install.tools' and try again" + exit 1 +fi + +PKGS=$(find . -type d -not -path . -a -not -iwholename '*.git*' -a -not -iname '.tool' -a -not -iwholename '*vendor*' -a -not -iname 'hack' -a -not -iwholename '*.artifacts*' -a -not -iwholename '*contrib*' -a -not -iwholename '*test*' -a -not -iwholename '*logo*' -a -not -iwholename '*conmon*' -a -not -iwholename '*completions*' -a -not -iwholename '*docs*' -a -not -iwholename '*pause*') + +# Execute the linter +${LINTER} \ + --concurrency=4\ + --enable-gc\ + --vendored-linters\ + --deadline=600s --disable-all\ + --enable=deadcode\ + --enable=errcheck\ + --enable=goconst\ + --enable=gofmt\ + --enable=golint\ + --enable=ineffassign\ + --enable=interfacer\ + --enable=megacheck\ + --enable=misspell\ + --enable=structcheck\ + --enable=varcheck\ + --enable=vet\ + --enable=vetshadow\ + --exclude='error return value not checked.*\(errcheck\)$'\ + --exclude='declaration of.*err.*shadows declaration.*\(vetshadow\)$'\ + --exclude='.*_test\.go:.*error return value not checked.*\(errcheck\)$'\ + --exclude='duplicate of.*_test.go.*\(dupl\)$'\ + --exclude='cmd\/client\/.*\.go.*\(dupl\)$'\ + --exclude='vendor\/.*'\ + --exclude='server\/seccomp\/.*\.go.*$'\ + ${PKGS[@]} |