Pull to refresh

svn diff notification

Reading time1 min
Views602
Быстрый трюк для получения уведомлений об изменении в svn
Потребовалось получать уведомления об изменениях в svn.
В svn есть возможность настраивать различные hook'и на различные action'ы.
Простой пример получения уведомлений по e-mail(можно использовать команду mail, но в условиях задачи ее не было, так же не было sendmail и прочего. Вообщем можно сделать как угодно, но это самый простой вариант, который подходил под условия задачи).

#!/usr/bin/perl -w
use Net::SMTP_auth;

my $repos=$ARGV[0];
my $rev=$ARGV[1];
my $change_data=`/usr/local/bin/svnlook diff -r $rev /home/svn/masterpanel/`;

$smtp = Net::SMTP_auth->new('smtp.example.com');
$smtp->auth('CRAM-MD5', 'some_login', 'some_pass');

$smtp->mail('svn@example.ru');
$smtp->to('masters@example.com');

$smtp->data();
$smtp->datasend("Subject: svn.example.com\n");
$smtp->datasend('From: svn@example.com');
$smtp->datasend("\n");
$smtp->datasend("$repos\n");
$smtp->datasend("$rev\n");
$smtp->datasend("$change_data\n");
$smtp->dataend();

$smtp->quit;


Теперь этот скриптик необходимо поместить в /home/svn/masterpanel/hooks/post-commit
Дать ему права на выполнения для пользователя владельца.
Tags:
Hubs:
Total votes 6: ↑6 and ↓0+6
Comments4

Articles