j 2012-02-02 14:35:19 +05:30
commit 5229866cde
4 changed files with 61 additions and 0 deletions

12
README.txt Normal file
View file

@ -0,0 +1,12 @@
This trac plugin adds a link to the repository in the source browser.
For an example of how it works, go to the following link and then
click on "Repo" in the context navigation:
http://zoo.weinigel.se/trac/public/browser/trac/repolink/trunk
To activate the link you have to tell the plugin where the repository
resides, for example, if the repository is reachable via http:
[trac]
repository_url=http://svn.edgewall.com/repos/trac/

0
repolink/__init__.py Normal file
View file

26
repolink/repolink.py Normal file
View file

@ -0,0 +1,26 @@
#! /usr/bin/python
from trac.core import *
from trac.web.api import IRequestFilter
from trac.web.chrome import add_ctxtnav
class RepoLinkModule(Component):
"""Show a link to the repository in the source browser."""
implements(IRequestFilter)
def __init__(self):
Component.__init__(self)
self.base = self.config.get('trac', 'repository_url')
if self.base.endswith('/'):
self.base = self.base[:-1]
def pre_process_request(self, req, handler):
return (handler)
def post_process_request(self, req, template, data, content_type):
if self.base and req.path_info.startswith('/browser'):
href = self.base + req.path_info[8:]
add_ctxtnav(req, "Repo", href = href)
return (template, data, content_type)

23
setup.py Executable file
View file

@ -0,0 +1,23 @@
#!/usr/bin/env python
# -*- coding: iso-8859-1 -*-
from setuptools import setup
setup(
name = 'RepoLink',
version = '0.1',
packages = ['repolink'],
author = "Christer Weinigel",
author_email = "christer@weinigel.se",
description = "Show a link to the repository in the source browser",
license = "BSD",
keywords = "trac repolink",
url = "http://zoo.weinigel.se/",
entry_points = {
'trac.plugins': [
'repolink.repolink = repolink.repolink'
]
}
)