#!/usr/local/bin/ruby ENV['PATH'] = '/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin' begin require 'rubygems' require 'builder' require_gem 'rscm', '=0.3.14' REPOS_TITLE = "Why's Subversion Repos" REPOS_URL = 'http://code.whytheluckystiff.net/' REPOS_DIR = '/var/svn/repos' WWW_DIR = '/var/www/code/htdocs' TRAC_CHANGES = 'http://code.whytheluckystiff.net/%s/changeset/%d' TRAC_FILE = 'http://code.whytheluckystiff.net/%s/browser/trunk/%s?rev=%d' # rss easy method def rss(io, repo_name, revs) feed = Builder::XmlMarkup.new( :target => io, :indent => 2 ) feed.instruct! :xml, :version => "1.0", :encoding => "UTF-8" feed.rss( 'xmlns:admin' => 'http://webns.net/mvcb/', 'xmlns:dc' => 'http://purl.org/dc/elements/1.1/', 'xmlns:rdf' => 'http://www.w3.org/1999/02/22-rdf-syntax-ns#', 'version' => '2.0' ) do |rss| rss.channel do |c| # channel stuffs c.dc :language, "en-us" c.dc :creator, "Ruby #{ VERSION }" c.dc :date, Time.now.utc.strftime( "%Y-%m-%dT%H:%M:%S+00:00" ) c.admin :generatorAgent, "rdf:resource" => "http://builder.rubyforge.org/" c.title "#{REPOS_TITLE}: #{repo_name}" c.link REPOS_URL c.description "Feed listing recent changesets to #{repo_name} repositories" revs.each do |repos, rev, changes| c.item do |item| link = TRAC_CHANGES % [repos, rev.identifier] item.title "[#{repos}:#{rev.identifier}] #{rev.files.map {|f| f.path}.join(', ')}" item.link link item.guid link item.dc :creator, rev.developer item.dc :date, rev.time.utc.strftime( "%Y-%m-%dT%H:%M:%S+00:00" ) item.description %{
#{ rev.message.gsub( /\r?\n/, '
' ) }
| Status | Adds | Dels | Path |
|---|---|---|---|
| #{status} | +#{adds} | -#{dels} | #{path} |