From 5476b345352eededeb8b85d767c143dcf66eff68 Mon Sep 17 00:00:00 2001 From: Miguel Barao Date: Thu, 1 Mar 2018 22:50:43 +0000 Subject: [PATCH] - Ask yes/no to confirm stopping the server --- serve.py | 21 ++++++++++++++++++--- tools.py | 4 ++-- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/serve.py b/serve.py index 7bb3eba..fc22d9e 100755 --- a/serve.py +++ b/serve.py @@ -9,6 +9,7 @@ import logging.config import argparse from concurrent.futures import ThreadPoolExecutor import mimetypes +import signal # user installed libraries import tornado.ioloop @@ -285,6 +286,16 @@ class QuestionHandler(BaseHandler): } }) + +# ------------------------------------------------------------------------- +def signal_handler(signal, frame): + r = input(' --> Stop webserver? (yes/no) ') + if r in ('yes', 'YES'): + tornado.ioloop.IOLoop.current().stop() + logging.critical('Webserver stopped.') + sys.exit(0) + + # ------------------------------------------------------------------------- # Tornado web server # ---------------------------------------------------------------------------- @@ -339,13 +350,17 @@ def main(): http_server.listen(8443) # --- run webserver - logging.info('Webserver running...') + logging.info('Webserver running... (Ctrl-C to stop)') + signal.signal(signal.SIGINT, signal_handler) + + try: tornado.ioloop.IOLoop.current().start() # running... - except KeyboardInterrupt: + except Exception: + logging.critical('Webserver stopped.') tornado.ioloop.IOLoop.current().stop() + raise - logging.critical('Webserver stopped.') # ---------------------------------------------------------------------------- if __name__ == "__main__": diff --git a/tools.py b/tools.py index b12ab05..5db1547 100644 --- a/tools.py +++ b/tools.py @@ -16,11 +16,11 @@ from pygments.formatters import HtmlFormatter logger = logging.getLogger(__name__) -# --------------------------------------------------------------------------- +# ------------------------------------------------------------------------- # Markdown to HTML renderer with support for LaTeX equations # Inline math: $x$ # Block math: $$x$$ or \begin{equation}x\end{equation} -# --------------------------------------------------------------------------- +# ------------------------------------------------------------------------- class MathBlockGrammar(mistune.BlockGrammar): block_math = re.compile(r"^\$\$(.*?)\$\$", re.DOTALL) latex_environment = re.compile(r"^\\begin\{([a-z]*\*?)\}(.*?)\\end\{\1\}", re.DOTALL) -- libgit2 0.21.2