namazu-dev(ring)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

changelog-checker



遊びで changelog-checker なるスクリプトを作りました。

実行例:

  % changelog-checker < ChangeLog  # 1.9.x の ChangeLog
      23  2000-01-29  Satoru Takabayashi  <satoru-t@xxxxxxxxxxxxxxxxxx>
       5  2000-01-29  Ryuji Abe  <raeva@xxxxxxxxxxxx>
      32  2000-01-28  Satoru Takabayashi  <satoru-t@xxxxxxxxxxxxxxxxxx>
       1  2000-01-28  Ryuji Abe  <raeva@xxxxxxxxxxxx>
       3  2000-01-27  Ryuji Abe  <raeva@xxxxxxxxxxxx>
    (snip)
       6  1999-06-12  Satoru Takabayashi <satoru-t@xxxxxxxxxxxxxxxxxx>
       2  1999-05-30  Satoru Takabayashi <satoru-t@xxxxxxxxxxxxxxxxxx>
       5  1999-05-29  Satoru Takabayashi <satoru-t@xxxxxxxxxxxxxxxxxx>
       2  1999-05-14  Satoru Takabayashi <satoru-t@xxxxxxxxxxxxxxxxxx>
       1  1999-05-07  Satoru Takabayashi <satoru-t@xxxxxxxxxxxxxxxxxx>

ただ単に行頭の * を数えているだけですが、その日の作業量を見
積もる目安としてそこそこ使えると思います。この出力を元にグラ
フを描くとやる気の波が見えるかもしれません。

どなたかグラフ作成が得意な方はいませんか? :-)

# gnuplot でできるかな? 日付を扱うのが難しい気がします。可能
# なら自動生成スクリプトを cronで動かして Webで公開すると面
# 白いんじゃないかと思っているのだけど。:)

-- Satoru Takabayashi

#! /usr/bin/perl -w
use strict;

my $date_and_name = undef;
my $cnt = 0;

while (<>) {
    next if /^\s*$/;
    chomp;

    if (/^\d/) {
	if (defined $date_and_name) {
	    printf "%8d  $date_and_name\n", $cnt;
	}
	$date_and_name = $_;
	$cnt = 0;
    } elsif (/^\s+\*/) {
	$cnt++;
    }
}
printf "%8d  $date_and_name\n", $cnt;