view main.py @ 149:86656563555e

Created parpg.py and moved code from parpg\main.py to it.
author KarstenBock@gmx.net
date Mon, 10 Oct 2011 15:12:33 +0200
parents 06be71be07f1
children b3b82c2aebee
line wrap: on
line source

#!/usr/bin/env python2 
#   This program is free software: you can redistribute it and/or modify
#   it under the terms of the GNU 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 General Public License for more details.

#   You should have received a copy of the GNU General Public License
#   along with this program.  If not, see <http://www.gnu.org/licenses/>.
import logging
import sys
from os.path import abspath

from parpg.settings import Settings

      
def main(args, opts):
    settings = Settings(*args)
    
    settings.parpg.DataPath = abspath(settings.parpg.DataPath)
    
    levels = {'debug': logging.DEBUG,
              'info': logging.INFO,
              'warning': logging.WARNING,
              'error': logging.ERROR,
              'critical': logging.CRITICAL}
    
    #TODO: setup formating
    logging.basicConfig(filename=opts.logfile, level=levels[opts.loglevel])
    logger = logging.getLogger('parpg')
    
    try:
        old_path = sys.path
        sys.path = [settings.parpg.FifePath]
        import fife
    except AttributeError:
        logger.warning('[parpg] section has no FifePath option')
    except ImportError:
        logger.critical("Could not import fife module. Please install fife or add "
                        "'FifePath' to the [parpg] section of your settings file")
        sys.exit(1)
    finally:
        sys.path = old_path
    
    from parpg.application import PARPGApplication
    from parpg.common import utils
    
    # enable psyco if available and in settings file
    try:
        import psyco
        psyco_available = True
    except ImportError:
        logger.warning('Psyco Acceleration unavailable')
        psyco_available = False
    
    if settings.fife.UsePsyco:
        if psyco_available:
            psyco.full()
            logger.info('Psyco Acceleration enabled')
        else:
            logger.warning('Please install psyco before attempting to use it'
                            'Psyco Acceleration disabled')
    else:
        logger.info('Psycho Acceleration disabled')
    
    # run the game
    app = PARPGApplication(settings)
    app.run()