--- cvsspam-0.2.12/cvsspam.rb 2009-04-23 19:19:04.000000000 +0300
+++ cvsspam-0.2.12/cvsspam.rb 2010-04-07 18:22:52.000000000 +0300
@@ -560,6 +560,10 @@
jiraSub = proc { |match|
"#{match}"
}
+tracSub = proc { |match|
+ match =~ /([0-9]+)/
+ "#{match}"
+}
ticketSub = proc { |match|
match =~ /([0-9]+)/
"#{match}"
@@ -930,15 +934,15 @@
# Link to Trac
class TracFrontend < WebFrontend
def path_url(path, tag)
- add_repo("#{@base_url}browser/#{urlEncode(path)}")
+ add_repo("#{@base_url}/browser/#{urlEncode(path)}")
end
def version_url(path, version)
- add_repo("#{@base_url}browser/#{urlEncode(path)}?rev=#{version}")
+ add_repo("#{@base_url}/browser/#{urlEncode(path)}?rev=#{version}")
end
def diff_url(file)
- add_repo("#{@base_url}changeset/#{file.toVer}")
+ add_repo("#{@base_url}/changeset/#{file.toVer}")
end
protected
@@ -949,7 +953,7 @@
else
log_anchor = ""
end
- add_repo("#{@base_url}log/#{urlEncode(file.path)}#{log_anchor}")
+ add_repo("#{@base_url}/log/#{urlEncode(file.path)}#{log_anchor}")
end
end
@@ -1699,6 +1703,7 @@
$choraURL = nil
$cvswebURL = nil
$tracURL = nil
+$tracProjects = nil
$from_address = nil
$subjectPrefix = nil
$files_in_subject = false;
@@ -1780,6 +1785,24 @@
fail "No email recipients defined"
end
+if $viewcvsURL != nil || $cvswebURL !=nil
+ if $repository_name == GUESS
+ # use the last component of the repository path as the name
+ ENV['CVSROOT'] =~ /([^\/]+$)/
+ $repository_name = $1
+ end
+end
+
+# if $tracProjects is set, process repository_name to setup new $tracURL
+if $tracProjects != nil && $tracURL != nil
+ $tracProjects.sort {|a,b| b[1] <=> a[1] }.each do |project, path|
+ if $repository_name.index(path) == 0
+ $tracURL = "#{$tracURL}/#{project}"
+ break
+ end
+ end
+end
+
if $viewcvsURL != nil
$viewcvsURL << "/" unless $viewcvsURL =~ /\/$/
$frontend = ViewCVSFrontend.new($viewcvsURL)
@@ -1789,23 +1812,15 @@
$cvswebURL << "/" unless $cvswebURL =~ /\/$/
$frontend = CVSwebFrontend.new($cvswebURL)
elsif $tracURL !=nil
- $tracURL << "/" unless $tracURL =~ /\/$/
$frontend = TracFrontend.new($tracURL)
else
$frontend = NoFrontend.new
end
-if $viewcvsURL != nil || $cvswebURL !=nil
- if $repository_name == GUESS
- # use the last component of the repository path as the name
- ENV['CVSROOT'] =~ /([^\/]+$)/
- $frontend.repository_name = $1
- elsif $repository_name != nil
- $frontend.repository_name = $repository_name
- end
+if $repository_name != nil
+ $frontend.repository_name = $repository_name
end
-
if $bugzillaURL != nil
commentSubstitutions['\b[Bb](?:[Uu][Gg])?\s*[#:]?\s*\[?[0-9]+\]?'] = bugzillaSub
end
@@ -1818,7 +1833,9 @@
if $jiraURL != nil
commentSubstitutions['\b[a-zA-Z]+-[0-9]+\b'] = jiraSub
end
-if $ticketURL != nil
+if $tracURL != nil
+ commentSubstitutions['\b[Tt][Ii][Cc][Kk][Ee][Tt]\s*#?[0-9]+\b'] = tracSub
+elsif $ticketURL != nil
commentSubstitutions['\b[Tt][Ii][Cc][Kk][Ee][Tt]\s*#?[0-9]+\b'] = ticketSub
end
if $issueURL != nil