Rubocop:从命令行给出的列表中排除文件

问题描述

我从预提交的钩子脚本中运行rubocop:

bin/bundle exec rubocop ${FILES}

,其中${FILES}是准备提交的文件列表。但是,这不尊重AllCops/Excluderubocop.yml部分的内容。

由于有些文件总是会产生攻击(例如schema.rb),有没有办法使config Exclude节位于命令行参数之前?

解决方法

我不知道,但是我同意应该存在(或者应该更容易)。

与此有关的一些问题already opened。也许需要将该设置分为两部分(例如,使用AllCops/AlwaysExcludeAllCops/ExcludeByDefault)。

有一个inherit_mode选项,但我不确定100%如何运作,或者是否it could help

,

我编辑了预提交脚本以生成一个临时的Rubocop配置,该配置继承自主要配置。临时配置仅包含AllCopsInclude部分,该部分似乎与主配置中的AllCops/Exclude配合良好。无需篡改inherit_mode

TEMP_CONFIG=/tmp/rubocop-`date +%s`.yml
RUBOCOP_CONFIG=`realpath .rubocop.yml`
cat << EOF > $TEMP_CONFIG
inherit_from: $RUBOCOP_CONFIG
AllCops:
  Include:
EOF
for file in "${FILES[@]}"; do
    echo "    - $file" >> $TEMP_CONFIG
done
bin/bundle exec rubocop -a -c $TEMP_CONFIG
rm $TEMP_CONFIG

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...