#!/usr/bin/env python2.6 import os, signal, sys, logging, logging.handlers judge = None def setup_logging(): from engineconfig import getConfig config = getConfig() judgelog = os.path.join(config.judgehome, config.logdir, 'judge-%s.log' % config.profile) testerlog = os.path.join(config.judgehome, config.logdir, 'tester-%s.log' % config.profile) # setup logger # judge.main is for main judge program logger = logging.getLogger('main') hdlr = logging.handlers.RotatingFileHandler( judgelog, 'a', 1024 * 1024 * 5, 4) formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s') hdlr.setFormatter(formatter) logger.addHandler(hdlr) if config.debug: logger.setLevel(logging.DEBUG) else: logger.setLevel(logging.INFO) # judge.tester is for forked compiler and programs logger = logging.getLogger('tester') hdlr = logging.handlers.RotatingFileHandler( testerlog, 'a', 1024 * 1024 * 5, 4) formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s') hdlr.setFormatter(formatter) logger.addHandler(hdlr) if config.debug: logger.setLevel(logging.DEBUG) else: logger.setLevel(logging.INFO) def main(): judgehome = os.path.abspath(os.path.dirname(sys.argv[0])) sys.path.insert(1, os.path.join(judgehome, 'python')) from engineconfig import getConfig config = getConfig() config.judgehome = judgehome vars = {'config': config} execfile(sys.argv[1], vars, vars) setup_logging() from engine import JudgeEngine judge = JudgeEngine() # setup signal handler signal.signal(signal.SIGINT, judge.quit) signal.signal(signal.SIGQUIT, judge.quit) signal.signal(signal.SIGTERM, judge.quit) judge.run() if __name__ == '__main__': main() # vim: set expandtab tabstop=4 shiftwidth=4: