#!/usr/bin/env bash

set -o errexit
set -o nounset
set -o pipefail

for d in $(find . -type d -not -iwholename '*.git*' -a -not -iname '.tool' -a -not -iwholename '*vendor*' -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*'); do
	${GOPATH}/bin/gometalinter \
		 --exclude='error return value not checked.*(Close|Log|Print|RemoveAll).*\(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.*$' \
		 --disable=aligncheck \
		 --disable=gotype \
		 --disable=gas \
		 --cyclo-over=80 \
		 --dupl-threshold=100 \
		 --tests \
		 --deadline=600s "${d}"
done
