git status -sで変更のあったファイル一覧を抽出

今のプロジェクトではJenkinsでperlcriticなどのチェックをしているのだが、たまにローカルで確認せずにコミットしてしまってJenkins様がお怒りになるので、git statusの出力結果からソースコードに変更のあったファイルのみを抽出してチェックするようにしてみた。

抽出の仕方は下のような感じ。

git status -s | gawk '{if(match($1, /M|A/) != 0) print $2;}'

‘git status’に-sオプションをつけると「A module.pm」のようにステータスとファイル名の2つのみが出力されるようになるので、gawkでA(Added)とM(Modified)のみのファイルを抜き出している。

これでも実行するのを忘れてコミットしてしまうと意味が無いので、コミットの時は必ずチェックスクリプトを走らせて、警告があるとコミットできないようにすることも考えられるが、それはやりすぎだろうか・・・。