+++ /dev/null
-#!/usr/bin/perl
-# $Id: cvsstat.pl,v 1.6 2003/12/30 14:02:26 mdk Exp $
-# Copyright (C) 1999 Webmasters of www.linux.or.jp. All rights reserved.
-#
-
-################################################################
-$from="Hajime BABA <baba.hajime\@nifty.com>";
-$mailto="JF-gofer\@linux.or.jp";
-#$mailto="baba.hajime\@nifty.com"; # for test
-$pserver=":pserver:baba\@cvs.linux.or.jp:/JF";
-$module="JF";
-$grep = "/bin/grep";
-$cvs = "/usr/bin/cvs";
-$nkf = "/usr/bin/nkf";
-$sendmail = "/usr/sbin/sendmail";
-################################################################
-
-
-sub parse_args {
- $today=`date`;
- chop($today);
- if ($ARGV[0] =~ /daily/) {
- $begindate=`date --date '1 day ago'`;
- $period = "1 Æü´Ö";
- } elsif ($ARGV[0] =~ /weekly/) {
- $begindate=`date --date '7 days ago'`;
- $period = "1 ½µ´Ö";
- } elsif ($ARGV[0] =~ /monthly/) {
- $begindate=`date --date '1 month ago'`;
- $period = "1 ¥ö·î´Ö";
- } else {
- $ARGV[0] = "weekly";
- $begindate=`date --date '7 days ago'`;
- $period = "1 ½µ´Ö";
- }
- chop($begindate);
-}
-
-sub parse_history_and_diff {
- local($cmd)="$cvs -d $pserver history -a -c -D '$begindate'";
- open(CMD, "$cmd | $grep ' $module' |") || die;
- @stdin = <CMD>;
- close(CMD);
-
- foreach (@stdin) {
- local($mark, $date, $time, $tz, $committer, $revision, $file, $repository, $hoge, $remote) = split();
-
- if (! $n{$committer}) {
- push(@committers, $committer);
- }
- $n{$committer} ++;
-
- local($tmpfile) = "$repository/$file";
- if (! $n{$tmpfile}) {
- push(@files, $tmpfile);
- }
- $n{$tmpfile} ++;
- }
- $ncommitter=$#committers+1;
- $nfile=$#files+1;
- $nline=$#stdin+1;
-
- foreach (sort @committers) {
- $committer_table .= sprintf " %8s: %4d\n", $_, $n{$_};
- }
- foreach (sort @files) {
- if ($n{$_} >= 2) {
- $file_table .= sprintf " %8s: %4d\n", $_, $n{$_};
- }
- }
-
- $diff1=`$cvs -d $pserver rdiff -u -D '$begindate' JF/ChangeLog`;
-}
-
-
-sub mail_notification {
- open(MAIL, "| $nkf -j | $sendmail -odb -oem -t") || die;
- select(MAIL);
-
- print << "_EOM_";
-To: $mailto
-From: $from
-Subject: $ARGV[0] cvs report for $today
-
-(¤³¤Î¥á¡¼¥ë¤Ï¡¢cron ¤Ë¤è¤Ã¤Æ¼«Æ°Åª¤ËÅê¹Æ¤µ¤ì¤ë¤â¤Î¤Ç¤¹¡£)
-
-¤³¤ì¤Ï $module ¥ê¥Ý¥¸¥È¥ê¤ËÂФ¹¤ë CVS commit ¾õ¶·¤Î½¸·×¤Ç¤¹¡£
-
-$begindate ¤«¤é
-$today ¤Þ¤Ç¤Î $period ¤Ë¡¢
-·× $ncommitter ¿Í¤Î committer ¤¬¡¢·× $nfile ¤Î¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¡¢
-¤Î¤Ù $nline ²ó¤ÎÊѹ¹ (add/commit/merge ¤Ê¤É) ¤ò¹Ô¤Ê¤¤¤Þ¤·¤¿¡£
-
-committer ¤´¤È¤Î½¸·×·ë²Ì¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¹ (¿ô»ú¤Ï commit ²ó¿ô)¡£
-
-$committer_table
-¤Þ¤¿¡¢2 ²ó°Ê¾åÊѹ¹¤Î²Ã¤¨¤é¤ì¤¿¥Õ¥¡¥¤¥ë¤Î°ìÍ÷¤Ç¤¹¡£
-
-$file_table
-¤³¤Î $period ¤ÎÊѹ¹ÅÀ¤Î°ìÍ÷¤òËöÈø¤ËźÉÕ¤·¤Þ¤¹¤Î¤Ç»²¹Í¤Þ¤Ç¤Ë¤É¤¦¤¾¡£
-
-¡ô ¿·¤¿¤Ë committer ¤Ë»²²Ã¤µ¤ì¤¿¤¤Êý¤Ï¡¢
-¡ô http://www.linux.or.jp/JF/Greenroom/
-¡ô http://www.linux.or.jp/JF/Greenroom/JF-committers.html
-¡ô http://www.linux.or.jp/JF/Greenroom/JF-gofer-task-howto.html
-¡ô http://www.linux.or.jp/JF/Greenroom/JF-CVS-README.html
-¡ô ¤ò¤´Í÷²¼¤µ¤¤¡£
-
-\f
-$diff1
-
-_EOM_
- ;
-
- close(MAIL);
-}
-
-sub main {
- &parse_args();
- &parse_history_and_diff();
- if ($nline > 0) {
- &mail_notification();
- }
-}
-
-# go!
-&main();
-exit 0;
-
-
-__END__
-
-NAME
- cvsstat.pl - www.linux.or.jp/JF ¥ê¥Ý¥¸¥È¥ê¤ÎÆ°ºî¾õ¶·Êó¹ðÍÑ cron ¥¹¥¯¥ê¥×¥È
-
-SYNOPSIS
- cvsstat.pl [daily|weekly|monthly]
-
-OPTIONS
- daily, weekly, monthly ¤Î¤¤¤º¤ì¤«¤ò°ú¿ô¤Ë¼è¤ì¤ë¡£
- °ú¿ô¤Ê¤·¤Î¾ì¹ç¤Ï weekly ÁêÅö¡£
-
-DESCRIPTIONS
- 1 ½µ´Ö¤Ë 1 ÅÙ¡¢cron ¤Ë¤Æµ¯Æ°¤¹¤ë¡£
- cvs ¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¤Î¤Ç¡¢¥ª¥ó¥é¥¤¥ó¾õÂ֤Ǥ¢¤ë¤³¤È¡£
-
-FILES
- CVS ¥ê¥Ý¥¸¥È¥ê ($pserver), grep, cvs, sendmail, nkf
-
-BUGS
- cron ¤ò¼Â¹Ô¤¹¤ë¥æ¡¼¥¶¤Î ~/.cvsrc ¤¬¤¢¤ë¤³¤È¤ò³Îǧ¡£
- ¤Ê¤«¤Ã¤¿¤éÅÓÃæ¤Ç»ß¤Þ¤Ã¤Æ¤·¤Þ¤¦¤Ï¤º¡£
-
-[EOF]