トップ «前の日記(2005-06-27) 最新 次の日記(2005-06-29)» 編集

Pyon's Diary

[はてなブックマーク登録数] [Google に登録] [RSS フィード] Gourmet Hardware Programming Society Software
成る可くJIS X 0213:2004對應MSフォント(5.0)、IPAフォント(003.02)で御覽下さい

2005-06-28 舊 平成拾漆年皐月廿玖日 (曇) [長年日記]

[節] 晩御飯。

  • 地元の驛前に在るRoyal Hostでクラブハウス・サンドウイツチ、麥酒。
Tags: None | del.icio.usに追加 | はてなブックマークに追加 | livedoor クリップに追加 | Yahoo! ブックマークに追加 | Google ブックマークに追加 | Permalink

[節] CVS コミツト・メールに差分と備忘録を含める。

2004 年 04 月 28 日の條Ruby で書かれたスクリプトが載つてゐたので、其れを Perl で書直して使ふ事にした。

#!/usr/bin/perl
#
use strict;
#
my $user = $ENV{USER};
my @argv = split ( /\s+/, shift ( @ARGV ) );
my $module = shift ( @argv );
#
my $cvs = '/usr/bin/cvs';
my $nkf = '/usr/local/bin/nkf';
my $sendmail = '/usr/sbin/sendmail';
#
my $to = 'hogehoge@example.com';
$to .= ' fugafuga@example.com' if ( $module =~ m/^foo/ );
#
my $body = '';
while ( my $l = <> ) {
    $body .= $l;
}
$body .= "----------------------\n";
#
sub status_and_diff {
    my ( $module, $file, $oldrev, $newrev ) = @_;
	 my $str = sprintf ( "\n\n%s, %s, %s, %s: \n",
                        $module, $file, $oldrev, $newrev );

    my $path = sprintf ( "%s/%s", $module, $file );

    $str .= "status:\n";
    $str .= `$cvs -nQq status $file`;

    $str .= "diff:\n";
    $str .= `$cvs -nQq rdiff -u -r $oldrev -r $newrev $path`;

    return $str;
}

sleep ( 1 ) if ( @argv );

foreach my $e ( @argv ) {
    $body .= &status_and_diff ( $module, split ( /,/, $e ) );
}

my $msg = <<_MAIL_;
Subject: [CVS] $user is committing.
To: foo\@example.com
From: foo\@example.com
Reply-To: foo\@example.com

$body
_MAIL_

open ( O, "| $nkf -j -Lw | $sendmail -Ac $to" ) || die $!;
print O $msg;
close ( O );

print $msg;

exit 0;
Tags: Software | del.icio.usに追加 | はてなブックマークに追加 | livedoor クリップに追加 | Yahoo! ブックマークに追加 | Google ブックマークに追加 | Permalink
[]

© pyon