dendrite/scripts/find-lint-ci.sh

43 lines
1.1 KiB
Bash
Executable file

#! /bin/bash
# Runs the linters against dendrite
# The linters can take a lot of resources and are slow, so they can be
# configured using two environment variables:
#
# - `DENDRITE_LINT_CONCURRENCY` - number of concurrent linters to run,
# gometalinter defaults this to 8
# - `DENDRITE_LINT_DISABLE_GC` - if set then the the go gc will be disabled
# when running the linters, speeding them up but using much more memory.
set -eux
cd `dirname $0`/..
export GOPATH=$(pwd)/vendor
args=""
if [ ${1:-""} = "fast" ]
then args="--config=linter-fast.json"
else args="--config=linter.json"
fi
if [ -n "${DENDRITE_LINT_CONCURRENCY:-}" ]
then args="$args --concurrency=$DENDRITE_LINT_CONCURRENCY"
fi
if [ -z "${DENDRITE_LINT_DISABLE_GC:-}" ]
then args="$args --enable-gc"
fi
echo "Installing lint search engine..."
curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | bash -s v1.6.1
go get github.com/client9/misspell/cmd/misspell
export GOPATH="$GOPATH:$(pwd)"
echo "Looking for lint..."
golangci-lint run --max-same-issues 0 --max-issues-per-linter 0
echo "Double checking spelling..."
$(pwd)/vendor/bin/misspell -error src *.md