Hudsonでコードの行数を記録する

Hudsonでコードの行数を記録するようにしました。
がりがりコードを書いた日にグラフが伸びてたり、リファクタリングをして行数が減ってたりするのを、グラフで確認すると楽しいんじゃないかと思います。
ちなみに、上の画像では、プログラム全体の行数と、テストコード込みの行数を調べてプロットしてます。

行数カウントスクリプトの用意

Plot Pluginはプロパティファイルに書き出した値をプロットしてくれるプラグインなので、プログラムの行数を書きだすシェルクスクリプトを用意します。

ボクはこんな感じにしました。wcだとファイル名がついてきてうざいので、awkでカウントしてます。

#!/bin/sh
ALL=$(awk '{ i += 1 } END{printf "%d\n",i}' core/*.ml)
CODE=$(ls -1 core/*.ml | grep -v Test.ml | xargs awk '{ i += 1 } END{printf "%d\n",i}')

echo "YVALUE=$ALL" >> $WORKSPACE/all_loc.properties
echo "YVALUE=$CODE" >> $WORKSPACE/code_loc.properties

PlotPluginの設定

あとやることは、

  • Hudsonでビルド毎にこのスクリプトを実行し、プロパティファイルに行数を書き出す。
  • 書き出した行数を描画できるようにプラグインの設定をする。

の2つだけです。

言葉で説明するよりもスクリーンショットのほうがわかりやすい気がするので、貼っておきます。



参考

さっき調べてたら似たことをやってる人が結構いました。