Commit | Line | Data |
---|---|---|
8ee66edd FC |
1 | import argparse |
2 | from sys import platform, argv | |
3 | from logging import info | |
4 | from os.path import exists | |
5 | from os import makedirs | |
6 | from panda3d.core import Filename, load_prc_file_data | |
7 | from direct.showbase.ShowBase import ShowBase | |
8 | ||
9 | ||
10 | class Pmachines: | |
11 | ||
12 | def __init__(self): | |
13 | self._configure() | |
14 | self.base = ShowBase() | |
15 | info('platform: %s' % platform) | |
16 | info('exists main.py: %s' % exists('main.py')) | |
17 | self._prepare_windows() | |
18 | args = self._parse_args() | |
19 | self.updating = args.update | |
20 | self.version = args.version | |
21 | if args.update: | |
22 | return | |
23 | ||
24 | def _configure(self): | |
25 | load_prc_file_data('', 'window-title pmachines') | |
26 | ||
27 | def _parse_args(self): | |
28 | parser = argparse.ArgumentParser() | |
29 | parser.add_argument('--update', action='store_true') | |
30 | parser.add_argument('--version', action='store_true') | |
31 | cmd_line = [arg for arg in iter(argv[1:]) if not arg.startswith('-psn_')] | |
32 | args = parser.parse_args(cmd_line) | |
33 | return args | |
34 | ||
35 | def _prepare_windows(self): | |
36 | data_path = '' | |
37 | if (platform.startswith('win') or platform.startswith('linux')) and ( | |
38 | not exists('main.py') or __file__.startswith('/app/bin/')): | |
39 | # it is the deployed version for windows | |
40 | data_path = str(Filename.get_user_appdata_directory()) + '/pmachines' | |
41 | home = '/home/flavio' # we must force this for wine | |
42 | if data_path.startswith('/c/users/') and exists(home + '/.wine/'): | |
43 | data_path = home + '/.wine/drive_' + data_path[1:] | |
44 | info('creating dirs: %s' % data_path) | |
45 | makedirs(data_path, exist_ok=True) |