・ Web系SE募集 (技術開発部開発系エンジニア・Java/Tomcat 420万円~750万円)
   ・ 社内SE募集 (業務系システムの開発・社内イントラ)

Subversionの最近のブログ記事

前回に引き続き IRCネタです。
IRCサーバーを作った時と同じぐらいの時期に、
をつくりました。
これを作ったきっかけは、SVNでコミット時にメールを送るのに、commit-email.pl を使ってましたが、
こまめにコミットすると、メールに埋もれてしまう~。
という事で、trunk にマージした時のみメールで送る様にし、それ以外は IRCに流そうと思ったわけです。
元ネタは、coderepos のcodereposbot で、codereposbot は コミット時にログを流していたので同じ事を考えました。
で、
commit-email.pl を trunk にコミットした時だけ IRCに情報を流すように少々手を加えます。
その時、バッチ(commit-email.pl)から IRC に手軽に流したいな~。でも。コミットの時だけ IRCに
IRCbotが join して~とかなると、それはそれでわずらわしいしー。とかとか考え、IRCにメッセージを流す中継を行うIRCbotのデーモンを立てるのがいいと思い、手軽にIRCbotを作れるPOEIKC::Plugin::IRC を作ったわけです。
(PoCo::IKCのおかげでデーモンと気軽に会話できるのがいいですね)

POEIKC::Plugin::IRC は、POEIKC の Plugin として使います。
使い方は、POEIKCPOEIKC::Plugin::IRC をインストールしたら、

poeikcd start -M=POEIKC::Plugin::IRC -a=irc_bot -p 6677 -s

として、起動し、svn でメール送信するスクリプト(commit-email.pl)に、

use POE::Component::IKC::ClientLite;

my %param = (
        ip              => Sys::Hostname::hostname,
        port    => 6677,
        name    => join('_'=>Sys::Hostname::hostname, ($0 =~ /(\w+)/g), $$),
);
my $ikc = create_ikc_client(%param);
$ikc or warn $POE::Component::IKC::ClientLite::error;

my @param = ({
        connect=>{
                Nick=>"svn_bot",
                Username=>"svn_bot",
                Ircname=>"svn_bot",
                Port=>"6667",
                flood=>1,
        },
        channel=>"#svn_commit"
});
my $message_respond = 'IKC_IRC/message_respond';
$ikc->post_respond( $message_respond => [@param, $mail_subject]);
$ikc->post_respond( $message_respond => [@param, $mail_body]);
とします。

必要に応じて、trunk にコミットした時だけというロジックを追加したりすれば完成です。

依存関係にあるものをインストールする

Apacheをインストール
Apacheは、Subversionをインストールする時に 「--with-apxs=」を指定しなければならないので、httpdのデーモンを起動しなくても、丸ごとインストールしてしまうのが早い。

http://httpd.apache.org/download.cgi

> wget http://ftp.kddilabs.jp/infosystems/apache/httpd/httpd-2.2.10.tar.gz
> tar xzf httpd-2.2.10.tar.gz
> cd httpd-2.2.10
> ./configure --prefix=$HOME/usr
> make
> make install

neon をインストール

http://www.webdav.org/neon/

> wget http://www.webdav.org/neon/neon-0.28.3.tar.gz
> tar xzvf neon-0.28.3.tar.gz
> cd neon-0.28.3
> ./configure --prefix=$HOME/usr
> make
> make check
> make install

Subversion をインストールする

http://subversion.tigris.org/

> wget http://subversion.tigris.org/downloads/subversion-1.5.4.tar.gz
> tar xzvf subversion-1.5.4.tar.gz
> cd subversion-1.5.4
> ./configure --prefix=$HOME/usr --with-apxs=$HOME/usr/bin/apxs
> make
> make check
> make install

このアーカイブについて

このページには、過去に書かれたブログ記事のうちSubversionカテゴリに属しているものが含まれています。

前のカテゴリはRuby on Railsです。

次のカテゴリはUnitTestです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。