Restart tornado on file changes, respect port and adress flags
This commit is contained in:
parent
e7def39323
commit
e40a2e9332
@ -183,15 +183,15 @@ def _main(opts, database_path=None):
|
||||
create_or_reset_admin_user()
|
||||
|
||||
# Start OpenSlides
|
||||
reload = True
|
||||
if opts.no_reload:
|
||||
extra_args = ['--noreload']
|
||||
else:
|
||||
extra_args = []
|
||||
reload = False
|
||||
|
||||
if opts.start_browser:
|
||||
start_browser(url)
|
||||
|
||||
start_openslides(addr, port, extra_args=extra_args)
|
||||
# Start the server
|
||||
run_tornado(addr, port, reload)
|
||||
|
||||
|
||||
def create_settings(settings_path, database_path=None):
|
||||
@ -309,15 +309,6 @@ def create_or_reset_admin_user():
|
||||
admin.save()
|
||||
|
||||
|
||||
def start_openslides(addr, port, start_browser_url=None, extra_args=[]):
|
||||
# Open the browser
|
||||
if start_browser_url:
|
||||
start_browser(start_browser_url)
|
||||
|
||||
# Start the server
|
||||
run_tornado(addr, port)
|
||||
|
||||
|
||||
def start_browser(url):
|
||||
browser = webbrowser.get()
|
||||
|
||||
|
@ -8,6 +8,7 @@
|
||||
:license: GNU GPL, see LICENSE for more details.
|
||||
"""
|
||||
|
||||
import sys
|
||||
import posixpath
|
||||
from urllib import unquote
|
||||
|
||||
@ -15,7 +16,7 @@ from tornado.httpserver import HTTPServer
|
||||
from tornado.ioloop import IOLoop
|
||||
from tornado.web import FallbackHandler, Application, StaticFileHandler
|
||||
from tornado.wsgi import WSGIContainer
|
||||
from tornado.options import options, define, parse_command_line
|
||||
from tornado.options import options, parse_command_line
|
||||
|
||||
from django.core.handlers.wsgi import WSGIHandler as Django_WSGIHandler
|
||||
from django.conf import settings
|
||||
@ -36,13 +37,22 @@ class DjangoStaticFileHandler(StaticFileHandler):
|
||||
return super(DjangoStaticFileHandler, self).get(absolute_path, include_body)
|
||||
|
||||
|
||||
def run_tornado(addr, port):
|
||||
parse_command_line()
|
||||
def run_tornado(addr, port, reload=False):
|
||||
# We need to add the no-browser option to argv, otherwise with each reload
|
||||
# a new browser will be opened (tornado simply re-executes Python using
|
||||
# sys.executable and sys.argv)
|
||||
if '--no-browser' not in sys.argv:
|
||||
sys.argv.append('--no-browser')
|
||||
|
||||
# Don't try to read the command line args from openslides
|
||||
parse_command_line(args=[])
|
||||
|
||||
# Start the application
|
||||
app = WSGIContainer(Django_WSGIHandler())
|
||||
tornado_app = Application([
|
||||
(r"%s(.*)" % settings.STATIC_URL, DjangoStaticFileHandler),
|
||||
(r'%s(.*)' % settings.MEDIA_URL, StaticFileHandler, {'path': settings.MEDIA_ROOT}),
|
||||
('.*', FallbackHandler, dict(fallback=app))])
|
||||
('.*', FallbackHandler, dict(fallback=app))], debug=reload)
|
||||
|
||||
server = HTTPServer(tornado_app)
|
||||
server.listen(port=port,
|
||||
|
Loading…
Reference in New Issue
Block a user