# Experimental Atom feed output for public revision log
This was SVN commit r4774.
This commit is contained in:
parent
62ccd531ed
commit
5d05ef4ea8
@ -8,3 +8,4 @@ cdbi:
|
|||||||
scp:
|
scp:
|
||||||
command : /usr/bin/scp -i /var/www/svnlog/ssh/wfgkey
|
command : /usr/bin/scp -i /var/www/svnlog/ssh/wfgkey
|
||||||
filename: philip@wildfiregames.com:~/svnlog/public
|
filename: philip@wildfiregames.com:~/svnlog/public
|
||||||
|
filename_feed: philip@wildfiregames.com:~/svnlog/public_feed
|
||||||
|
@ -4,8 +4,9 @@ use strict;
|
|||||||
use base 'Catalyst::Controller';
|
use base 'Catalyst::Controller';
|
||||||
|
|
||||||
use XML::Simple;
|
use XML::Simple;
|
||||||
use Text::ASCIITable::Wrap;
|
use File::Remote;
|
||||||
use File::Remote;
|
use XML::Atom::SimpleFeed;
|
||||||
|
use Data::UUID;
|
||||||
|
|
||||||
sub doupdate : Local
|
sub doupdate : Local
|
||||||
{
|
{
|
||||||
@ -47,7 +48,8 @@ sub doupdate : Local
|
|||||||
add_default_public_msgs($c);
|
add_default_public_msgs($c);
|
||||||
|
|
||||||
my $scp = new File::Remote(rcp => $c->config->{scp}{command});
|
my $scp = new File::Remote(rcp => $c->config->{scp}{command});
|
||||||
$scp->writefile($c->config->{scp}{filename}, generate_text()) or die $!;
|
$scp->writefile($c->config->{scp}{filename}, generate_text()) or die $!;
|
||||||
|
$scp->writefile($c->config->{scp}{filename_feed}, generate_feed()) or die $!;
|
||||||
|
|
||||||
$c->res->body("Updated log to $max_seen.");
|
$c->res->body("Updated log to $max_seen.");
|
||||||
}
|
}
|
||||||
@ -93,7 +95,14 @@ sub createtext : Local
|
|||||||
{
|
{
|
||||||
my ($self, $c) = @_;
|
my ($self, $c) = @_;
|
||||||
my $out = generate_text();
|
my $out = generate_text();
|
||||||
$c->res->body("<tt>$out</tt>");
|
$c->res->body($out);
|
||||||
|
}
|
||||||
|
|
||||||
|
sub createfeed : Local
|
||||||
|
{
|
||||||
|
my ($self, $c) = @_;
|
||||||
|
my $out = generate_feed();
|
||||||
|
$c->res->body($out);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -125,6 +134,38 @@ EOF
|
|||||||
return $out;
|
return $out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub generate_feed
|
||||||
|
{
|
||||||
|
my @logentries = SVNLog::Model::CDBI::Logentry->recent(7);
|
||||||
|
|
||||||
|
my $uid_gen = new Data::UUID;
|
||||||
|
|
||||||
|
my $feed = new XML::Atom::SimpleFeed(
|
||||||
|
title => "0 A.D. Revision Log",
|
||||||
|
link => "http://www.wildfiregames.com/0ad/",
|
||||||
|
id => "urn:uuid:" . $uid_gen->create_from_name_str('WFG SVN feed', 'feed'),
|
||||||
|
);
|
||||||
|
|
||||||
|
for (@logentries)
|
||||||
|
{
|
||||||
|
my ($revision, $author, $date, $msg) = ($_->revision, $_->author, $_->date, $_->public_msg);
|
||||||
|
next unless defined $msg and $msg->msg;
|
||||||
|
|
||||||
|
my $uid = $uid_gen->create_from_name_str('WFG SVN feed', $revision);
|
||||||
|
|
||||||
|
$feed->add_entry(
|
||||||
|
title => "Revision $revision",
|
||||||
|
id => "urn:uuid:$uid",
|
||||||
|
author => $author,
|
||||||
|
content => $msg->msg,
|
||||||
|
published => $date,
|
||||||
|
updated => $date,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $feed->as_string;
|
||||||
|
}
|
||||||
|
|
||||||
sub filter_copyfrom
|
sub filter_copyfrom
|
||||||
{
|
{
|
||||||
my @r = @_;
|
my @r = @_;
|
||||||
|
Loading…
Reference in New Issue
Block a user