はじめに
表題の通り、Gitの差分ファイルのみにSwiftLintを実行する際に
ファイル単体に対して実行しているからか、SwiftLint設定ファイルのexcluded
が機能しませんでした。
詰まったので備忘録的に投稿させていただきます。
実装
SwiftLintを実行するスクリプトの中で、除外の条件文を書きました。
git diff
のところの、grep
を繋げている箇所です。
最初はif文
で書こうとしたのですが、条件が3つ以上になるとどうもうまくいかず、このような実装になっています。
不恰好ですが、除外が機能することが確認出来ました。
RunScript
if which "${PODS_ROOT}/SwiftLint/swiftlint" >/dev/null; then
git diff --name-only | grep .swift | grep -v Pods/ | grep -v Carthage/ | grep -v R.generated.swift | while read filename; do
"${PODS_ROOT}/SwiftLint/swiftlint" autocorrect --path "$filename"
"${PODS_ROOT}/SwiftLint/swiftlint" --path "$filename"
done
else
echo "warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint"
fi
おわりに
もっと格好良い方法をご存知でしたらコメントいただけると幸いです。。