Add option to define your own rubocop command

In development, you may choose to use this script in your Git pre-commit hook.
Then you want the fastest possible execution to not be delayed in your
Git operations. While the default is the safest option, you can now
define your own optimised command to avoid loading the whole Rails app
environment.
This commit is contained in:
Maikel Linke
2025-01-30 09:49:27 +11:00
parent 757a1548e6
commit b9bff1598d

View File

@@ -7,7 +7,25 @@
# ./script/rubocop-diff.sh --cached || exit 1
#
rubocop="`dirname $0`/../bin/rubocop"
# If you prefer to use faster boot times of the Rubocop Server then you can
# define your way of calling rubocop:
#
# export RUBOCOP_BIN="rubocop --server"
#
# Or locked to the bundled version (needs update after `bundle update`):
#
# export RUBOCOP_BIN="`bundle show rubocop`/exe/rubocop --server"
#
# I don't know how to set that automatically though.
#
# But I observed some performance improvement:
#
# * Using default binstup with spring: boot: 6.2s, repeat: 0.4s, 0.4s, ...
# * Using rubocop server binstub without bundler: boot: 2s, repeat: 1s, 0.3s, ...
# * Using rubocop executable directly: boot: 2.1s, repeat: 1s, 0.16s, ...
#
# The default binstub is still the safest, always using the bundled version.
: ${RUBOCOP_BIN="`dirname $0`/../bin/rubocop"}
cached="$1" # may be empty
if git diff $cached --diff-filter=ACMR HEAD --quiet; then
@@ -17,7 +35,8 @@ fi
exec git diff $cached --name-only --relative --diff-filter=ACMR HEAD |\
xargs \
$rubocop --force-exclusion \
--fail-level A \
--format simple \
--parallel --cache true
$RUBOCOP_BIN \
--force-exclusion \
--fail-level A \
--format simple \
--parallel --cache true