# HG changeset patch # User KarstenBock@gmx.net # Date 1318252353 -7200 # Node ID 59c4db30fe050ef727e310a977d898751d0d5a48 # Parent 828dcf3d4ee7c7ec2a4fc7c186aca21d9f150b26 Created parpg.py and moved code from parpg\main.py to it. diff -r 828dcf3d4ee7 -r 59c4db30fe05 src/parpg.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/parpg.py Mon Oct 10 15:12:33 2011 +0200 @@ -0,0 +1,39 @@ +#!/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 . + +#TODO: Modularize this script +import sys +from optparse import OptionParser +from os import path + +from parpg.main import main + +usage = ('usage: %prog [options] settings_path [system_path user_path]\n\n' + 'The settings_path argument is mandatory and is the directory in \n' + 'which your parpg.cfg file is located. Optionally, you may \n' + 'specify where data files are located (system_path), and where \n' + 'the user settings and data files should be saved to (user_path)\n\n' + 'Example: python %prog .') + +parser = OptionParser(description='PARPG Launcher Script', usage=usage) +parser.add_option('-f', '--logfile', + help='Name of log file to save to') +parser.add_option('-l', '--loglevel', default='critical', + help='desired output level for log file') +opts, args = parser.parse_args() + +if not args: + parser.print_help() + sys.exit(1) +main(args, opts) \ No newline at end of file diff -r 828dcf3d4ee7 -r 59c4db30fe05 src/parpg/main.py --- a/src/parpg/main.py Mon Oct 10 15:05:15 2011 +0200 +++ b/src/parpg/main.py Mon Oct 10 15:12:33 2011 +0200 @@ -11,81 +11,62 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . - -#TODO: Modularize this script +import logging import sys -import logging - -from optparse import OptionParser +from os.path import abspath from parpg.settings import Settings -usage = ('usage: %prog [options] settings_path [system_path user_path]\n\n' - 'The settings_path argument is mandatory and is the directory in \n' - 'which your system.cfg file is located. Optionally, you may \n' - 'specify where data files are located (system_path), and where \n' - 'the user settings and data files should be saved to (user_path)\n\n' - 'Example: python %prog .') - -parser = OptionParser(description='PARPG Launcher Script', usage=usage) -parser.add_option('-f', '--logfile', - help='Name of log file to save to') -parser.add_option('-l', '--loglevel', default='critical', - help='desired output level for log file') -opts, args = parser.parse_args() - -if not args: - parser.print_help() - sys.exit(1) - - - -settings = Settings(*args) - -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') + +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.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() + logger.info('Psycho Acceleration disabled') + + # run the game + app = PARPGApplication(settings) + app.run()