Mercurial > parpg-source
comparison 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 |
comparison
equal
deleted
inserted
replaced
148:2241722311bf | 149:86656563555e |
---|---|
9 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 9 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
10 # GNU General Public License for more details. | 10 # GNU General Public License for more details. |
11 | 11 |
12 # You should have received a copy of the GNU General Public License | 12 # You should have received a copy of the GNU General Public License |
13 # along with this program. If not, see <http://www.gnu.org/licenses/>. | 13 # along with this program. If not, see <http://www.gnu.org/licenses/>. |
14 | 14 import logging |
15 #TODO: Modularize this script | |
16 import sys | 15 import sys |
17 import logging | 16 from os.path import abspath |
18 | |
19 from optparse import OptionParser | |
20 | 17 |
21 from parpg.settings import Settings | 18 from parpg.settings import Settings |
22 | 19 |
23 usage = ('usage: %prog [options] settings_path [system_path user_path]\n\n' | 20 |
24 'The settings_path argument is mandatory and is the directory in \n' | 21 def main(args, opts): |
25 'which your system.cfg file is located. Optionally, you may \n' | 22 settings = Settings(*args) |
26 'specify where data files are located (system_path), and where \n' | 23 |
27 'the user settings and data files should be saved to (user_path)\n\n' | 24 settings.parpg.DataPath = abspath(settings.parpg.DataPath) |
28 'Example: python %prog .') | 25 |
29 | 26 levels = {'debug': logging.DEBUG, |
30 parser = OptionParser(description='PARPG Launcher Script', usage=usage) | 27 'info': logging.INFO, |
31 parser.add_option('-f', '--logfile', | 28 'warning': logging.WARNING, |
32 help='Name of log file to save to') | 29 'error': logging.ERROR, |
33 parser.add_option('-l', '--loglevel', default='critical', | 30 'critical': logging.CRITICAL} |
34 help='desired output level for log file') | 31 |
35 opts, args = parser.parse_args() | 32 #TODO: setup formating |
36 | 33 logging.basicConfig(filename=opts.logfile, level=levels[opts.loglevel]) |
37 if not args: | 34 logger = logging.getLogger('parpg') |
38 parser.print_help() | 35 |
39 sys.exit(1) | 36 try: |
40 | 37 old_path = sys.path |
41 | 38 sys.path = [settings.parpg.FifePath] |
42 | 39 import fife |
43 settings = Settings(*args) | 40 except AttributeError: |
44 | 41 logger.warning('[parpg] section has no FifePath option') |
45 levels = {'debug': logging.DEBUG, | 42 except ImportError: |
46 'info': logging.INFO, | 43 logger.critical("Could not import fife module. Please install fife or add " |
47 'warning': logging.WARNING, | 44 "'FifePath' to the [parpg] section of your settings file") |
48 'error': logging.ERROR, | 45 sys.exit(1) |
49 'critical': logging.CRITICAL} | 46 finally: |
50 | 47 sys.path = old_path |
51 #TODO: setup formating | 48 |
52 logging.basicConfig(filename=opts.logfile, level=levels[opts.loglevel]) | 49 from parpg.application import PARPGApplication |
53 logger = logging.getLogger('parpg') | 50 from parpg.common import utils |
54 | 51 |
55 try: | 52 # enable psyco if available and in settings file |
56 old_path = sys.path | 53 try: |
57 sys.path = [settings.parpg.FifePath] | 54 import psyco |
58 import fife | 55 psyco_available = True |
59 except AttributeError: | 56 except ImportError: |
60 logger.warning('[parpg] section has no FifePath option') | 57 logger.warning('Psyco Acceleration unavailable') |
61 except ImportError: | 58 psyco_available = False |
62 logger.critical("Could not import fife module. Please install fife or add " | 59 |
63 "'FifePath' to the [parpg] section of your settings file") | 60 if settings.fife.UsePsyco: |
64 sys.exit(1) | 61 if psyco_available: |
65 finally: | 62 psyco.full() |
66 sys.path = old_path | 63 logger.info('Psyco Acceleration enabled') |
67 | 64 else: |
68 from parpg.application import PARPGApplication | 65 logger.warning('Please install psyco before attempting to use it' |
69 from parpg.common import utils | 66 'Psyco Acceleration disabled') |
70 | |
71 # enable psyco if available and in settings file | |
72 try: | |
73 import psyco | |
74 psyco_available = True | |
75 except ImportError: | |
76 logger.warning('Psyco Acceleration unavailable') | |
77 psyco_available = False | |
78 | |
79 if settings.fife.UsePsyco: | |
80 if psyco_available: | |
81 psyco.full() | |
82 logger.info('Psyco Acceleration enabled') | |
83 else: | 67 else: |
84 logger.warning('Please install psyco before attempting to use it' | 68 logger.info('Psycho Acceleration disabled') |
85 'Psyco Acceleration disabled') | 69 |
86 else: | 70 # run the game |
87 logger.info('Psycho Acceleration disabled') | 71 app = PARPGApplication(settings) |
88 | 72 app.run() |
89 # run the game | |
90 app = PARPGApplication(settings) | |
91 app.run() |