238:5a4ed43de4c6
Anton Shestakov <av6@dwimlabs.net>, Thu, 01 Sep 2016 17:39:28 +0800
queue: announce user-agent to be nice to hgweb operators

next change 244:62252030324f
previous change 224:ce4f062fce9d

viewer.py

Permissions: -rwxr-xr-x

Other formats: Feeds:
#!/usr/bin/env python
from __future__ import absolute_import
import logging
from tornado.ioloop import IOLoop
from tornado.options import define, options
from tornado.web import Application
from candolint import uimodules
from candolint.handlers import IndexHandler, ProjectHandler, CheckHandler, StatusHandler, ErrorHandler
from candolint.models import database
from candolint.utils import rel
class CandolintViewer(Application):
def __init__(self, debug=False):
project_re = r'/([.a-z0-9_-]+)/([^/]+)/([^/]+)'
handlers = [
(r'/', IndexHandler),
(project_re, ProjectHandler),
(project_re + r'/(\d+|latest)(?:/(raw))?', CheckHandler),
(project_re + r'/status\.svg', StatusHandler),
(r'.*', ErrorHandler, {'status_code': 404})
]
settings = dict(
static_path=rel('static'),
template_path=rel('templates'),
ui_modules=uimodules,
debug=debug
)
super(CandolintViewer, self).__init__(handlers, **settings)
if debug:
logging.getLogger('peewee').setLevel(logging.DEBUG)
database.init(rel('database.sqlite'))
def listen(self, port, address='', **kwargs):
name = self.__class__.__name__
logging.info('%s is serving on http://%s:%d/', name, address, port)
super(CandolintViewer, self).listen(port, address, **kwargs)
def main():
define('listen', metavar='IP', default='127.0.0.1')
define('port', metavar='PORT', default=8033, type=int)
define('xheaders', metavar='True|False', default=False, type=bool)
define('debug', metavar='True|False', default=False, type=bool)
options.parse_command_line()
application = CandolintViewer(options.debug)
application.listen(options.port, options.listen, xheaders=options.xheaders)
IOLoop.current().start()
if __name__ == '__main__':
main()