4
from paste import urlparser
5
from paste import request
6
from paste import httpexceptions
7
from paste.wsgiwrappers import WSGIRequest, WSGIResponse
9
from loggerhead.controllers.changelog_ui import ChangeLogUI
10
from loggerhead.controllers.inventory_ui import InventoryUI
11
from loggerhead.controllers.annotate_ui import AnnotateUI
12
from loggerhead.controllers.revision_ui import RevisionUI
15
static = os.path.join(
16
os.path.dirname(__file__), 'static')
18
static_app = urlparser.make_static(None, static)
21
logging.getLogger().setLevel(logging.DEBUG)
23
class BranchWSGIApp(object):
25
def __init__(self, history):
26
self.history = history
27
self.friendly_name = 'hello'
28
self.log = logging.getLogger('hi')
30
def url(self, *args, **kw):
31
if isinstance(args[0], list):
34
for k, v in kw.iteritems():
36
return request.construct_url(
37
self._environ, script_name=self._url_base,
38
path_info=self._url_base + '/'.join(args),
43
def app(self, environ, start_response):
44
req = WSGIRequest(environ)
45
response = WSGIResponse()
46
response.headers['Content-Type'] = 'text/plain'
47
self._url_base = environ['SCRIPT_NAME']
48
self._environ = environ
49
path = request.path_info_pop(environ)
51
raise httpexceptions.HTTPMovedPermanently('changes')
52
elif path == 'changes':
54
c.default(req, response)
55
elif path == 'annotate':
57
c.default(req, response)
60
c.default(req, response)
61
elif path == 'revision':
63
c.default(req, response)
64
elif path == 'static':
65
return static_app(environ, start_response)
66
return response(environ, start_response)