Changeset - 70b1e5d1e20d
[Not reviewed]
default
0 0 1
Marcin Kuzminski - 16 years ago 2010-04-28 00:16:08
marcin@python-works.com
simplehg, cleanup
1 file changed with 37 insertions and 0 deletions:
0 comments (0 inline, 0 general)
pylons_app/lib/simplehg.py
Show inline comments
 
new file 100644
 
import os
 

	
 
import cgi
 
from mercurial import util
 
from mercurial.hgweb.request import wsgirequest, normalize
 
from mercurial.hgweb import hgweb
 
from pylons.controllers.util import Response
 
from mercurial.hgweb.request import wsgiapplication
 

	
 

	
 
class SimpleHg(object):
 

	
 
    def __init__(self, application, config):
 
        self.application = application
 
        self.config = config
 
        
 
    def __call__(self, environ, start_response):
 
        if not is_mercurial(environ):
 
            return self.application(environ, start_response)
 
        else:
 
            from pprint import pprint
 
            pprint(environ)
 

	
 
            repo_path = os.path.join('/home/marcink/python_workspace/', environ['PATH_INFO'].replace('/', ''))
 
            def _make_app():return hgweb(repo_path, "Name")
 
            app = wsgiapplication(_make_app)
 
            return app(environ, start_response)            
 
                
 
def is_mercurial(environ):
 
    """
 
    Returns True if request's target is mercurial server - header
 
    ``HTTP_ACCEPT`` of such request would start with ``application/mercurial``.
 
    """
 
    http_accept = environ.get('HTTP_ACCEPT')
 
    if http_accept and http_accept.startswith('application/mercurial'):
 
        return True
 
    return False
0 comments (0 inline, 0 general)