#!/usr/bin/env python2 # -*- coding: utf-8 -*- # Contest Management System - http://cms-dev.github.io/ # Copyright © 2013 Luca Wehrstedt # Copyright © 2016 Stefano Maggiolo # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals # We enable monkey patching to make many libraries gevent-friendly # (for instance, urllib3, used by requests) import gevent.monkey gevent.monkey.patch_all() import logging import sys from cms import ConfigError, default_argument_parser from cms.db import ask_for_contest, test_db_connection from cms.server.contest import ContestWebServer logger = logging.getLogger(__name__) def main(): """Parse arguments and launch service. """ test_db_connection() success = default_argument_parser("Contestants' web server for CMS.", ContestWebServer, ask_contest=ask_for_contest).run() return 0 if success is True else 1 if __name__ == "__main__": try: sys.exit(main()) except ConfigError as error: logger.critical(error.message) sys.exit(1)