-
Notifications
You must be signed in to change notification settings - Fork 25
/
Copy pathmain.py
68 lines (53 loc) · 1.47 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
"""
* Proxyshop Application Launcher
"""
# Standard Library Imports
import os
import sys
"""
* Launcher Funcs
"""
def launch_cli():
"""Launch the app in CLI mode."""
# Enable headless mode, remove cli marker
os.environ['PROXYSHOP_HEADLESS'] = '1'
if 'cli' in sys.argv:
sys.argv.remove('cli')
# Local Imports
from src.commands import ProxyshopCLI
# Run the CLI application
ProxyshopCLI.main()
def launch_gui():
"""Launch the app in GUI mode."""
# Local Imports
os.environ['PROXYSHOP_HEADLESS'] = '0'
from src import (
APP, CFG, CON, CONSOLE, ENV,
PLUGINS, TEMPLATES, TEMPLATE_MAP, TEMPLATE_DEFAULTS)
from src.gui._state import register_kv_classes, load_kv_config
from src.gui.app import ProxyshopGUIApp
# Kivy Imported Last
from kivy.resources import resource_add_path
# Kivy packaging for PyInstaller
if hasattr(sys, '_MEIPASS'):
resource_add_path(os.path.join(sys._MEIPASS))
# Load KV files and utilities
load_kv_config()
register_kv_classes()
# Run the GUI application
ProxyshopGUIApp(
app=APP,
con=CON,
cfg=CFG,
env=ENV,
console=CONSOLE,
plugins=PLUGINS,
templates=TEMPLATES,
template_map=TEMPLATE_MAP,
templates_default=TEMPLATE_DEFAULTS,
).run()
if __name__ == '__main__':
"""Route to a qualified launcher."""
if 'cli' in sys.argv:
sys.exit(launch_cli())
launch_gui()