Mercurial > piecrust2
diff foodtruck/main.py @ 587:d4a01a023998
admin: Add "FoodTruck" admin panel from the side experiment project.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Sat, 16 Jan 2016 14:24:35 -0800 |
parents | |
children | b884bef3e611 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/foodtruck/main.py Sat Jan 16 14:24:35 2016 -0800 @@ -0,0 +1,54 @@ +import sys +import logging +import argparse +from .web import app + + +logger = logging.getLogger(__name__) + + +def main(): + parser = argparse.ArgumentParser( + description="FoodTruck command line utility") + parser.add_argument( + '--debug', + help="Show debug information", + action='store_true') + parser.add_argument( + '--version', + help="Print version and exit", + action='store_true') + + args = parser.parse_args() + if args.version: + try: + from .__version__ import version + except ImportError: + print("Can't find version information.") + args.exit(1) + print("FoodTruck %s" % version) + args.exit(0) + + root_logger = logging.getLogger() + root_logger.setLevel(logging.INFO) + if args.debug: + root_logger.setLevel(logging.DEBUG) + + log_handler = logging.StreamHandler(sys.stdout) + if args.debug: + log_handler.setLevel(logging.DEBUG) + else: + log_handler.setLevel(logging.INFO) + root_logger.addHandler(log_handler) + + try: + app.run(debug=args.debug, threaded=True) + except SystemExit: + # This is needed for Werkzeug's code reloader to be able to correctly + # shutdown the child process in order to restart it (otherwise, SSE + # generators will keep it alive). + from .views import baking + logger.debug("Shutting down SSE generators from main...") + baking.server_shutdown = True + raise +