mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-11-30 03:27:44 +01:00
6582f0029b
Uses `gopls check <files>` as a linter. Tested locally and brings up 149 errors currently for me. I don't think I want to fix them in this PR, but I would like at least to get this analysis running on CI. List of errors: ``` modules/indexer/code/indexer.go:181:11: impossible condition: nil != nil routers/private/hook_post_receive.go:120:15: tautological condition: nil == nil services/auth/source/oauth2/providers.go:185:9: tautological condition: nil == nil services/convert/issue.go:216:11: tautological condition: non-nil != nil tests/integration/git_test.go:332:9: impossible condition: nil != nil services/migrations/migrate.go:179:24-43: unused parameter: ctx services/repository/transfer.go:288:48-69: unused parameter: doer tests/integration/api_repo_tags_test.go:75:41-61: unused parameter: session tests/integration/git_test.go:696:64-74: unused parameter: baseBranch tests/integration/gpg_git_test.go:265:27-39: unused parameter: t tests/integration/gpg_git_test.go:284:23-29: unused parameter: tmpDir tests/integration/gpg_git_test.go:284:31-35: unused parameter: name tests/integration/gpg_git_test.go:284:37-42: unused parameter: email ``` (cherry picked from commit 816222243af523316041692622be6f48ef068693) Conflicts: Makefile trivial context conflict and also ask renovate to watch over it do not include it in lint-backend because the errors are not fixed
23 lines
725 B
Bash
Executable file
23 lines
725 B
Bash
Executable file
#!/bin/bash
|
|
set -uo pipefail
|
|
|
|
cd "$(dirname -- "${BASH_SOURCE[0]}")" && cd ..
|
|
|
|
IGNORE_PATTERNS=(
|
|
"is deprecated" # TODO: fix these
|
|
)
|
|
|
|
# lint all go files with 'gopls check' and look for lines starting with the
|
|
# current absolute path, indicating a error was found. This is neccessary
|
|
# because the tool does not set non-zero exit code when errors are found.
|
|
# ref: https://github.com/golang/go/issues/67078
|
|
ERROR_LINES=$("$GO" run "$GOPLS_PACKAGE" check "$@" 2>/dev/null | grep -E "^$PWD" | grep -vFf <(printf '%s\n' "${IGNORE_PATTERNS[@]}"));
|
|
NUM_ERRORS=$(echo -n "$ERROR_LINES" | wc -l)
|
|
|
|
if [ "$NUM_ERRORS" -eq "0" ]; then
|
|
exit 0;
|
|
else
|
|
echo "$ERROR_LINES"
|
|
echo "Found $NUM_ERRORS 'gopls check' errors"
|
|
exit 1;
|
|
fi
|