如何解决Rubocop:从命令行给出的列表中排除文件
我从预提交的钩子脚本中运行rubocop:
bin/bundle exec rubocop ${FILES}
,其中${FILES}
是准备提交的文件列表。但是,这不尊重Allcops/Exclude
中rubocop.yml
部分的内容。
由于有些文件总是会产生攻击(例如schema.rb),有没有办法使config Exclude
节位于命令行参数之前?
解决方法
我不知道,但是我同意应该存在(或者应该更容易)。
与此有关的一些问题already opened。也许需要将该设置分为两部分(例如,使用AllCops/AlwaysExclude
或AllCops/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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。