From c262b75c3d0e48839fe327697e2758d3120d780e Mon Sep 17 00:00:00 2001 From: Denis Bilenko Date: Thu, 2 Jan 2025 11:33:06 +0100 Subject: [PATCH] Make lint.sh to run golangci-lint only once in the best case (#2062) Follow up to #2051 and #2056. Running golangci-lint twice always is measurably slower (1.5s vs 2.5s), so only run it twice in case it is necessary. --- lint.sh | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/lint.sh b/lint.sh index 13efa9855..1f881eaf7 100755 --- a/lint.sh +++ b/lint.sh @@ -1,9 +1,14 @@ #!/bin/bash -set -euo pipefail +set -uo pipefail # With golangci-lint, if there are any compliation issues, then formatters' autofix won't be applied. # https://github.com/golangci/golangci-lint/issues/5257 -# However, running goimports first alone will actually fix some of the compilation issues. -# Fixing formatting is also reasonable thing to do. -# For this reason, this script runs golangci-lint in two stages: -golangci-lint run --enable-only="gofmt,gofumpt,goimports" --fix $@ -exec golangci-lint run --fix $@ + +golangci-lint run --fix "$@" +lint_exit_code=$? + +if [ $lint_exit_code -ne 0 ]; then + # These linters work in presence of compilation issues when run alone, so let's get these fixes at least. + golangci-lint run --enable-only="gofmt,gofumpt,goimports" --fix "$@" +fi + +exit $lint_exit_code