forked from openlp/openlp
Use start script __main__.py which enables 'python -m openlp'
bzr-revno: 2899
This commit is contained in:
commit
22ae2d66b5
86
openlp/__main__.py
Normal file
86
openlp/__main__.py
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# vim: autoindent shiftwidth=4 expandtab textwidth=120 tabstop=4 softtabstop=4
|
||||||
|
|
||||||
|
##########################################################################
|
||||||
|
# OpenLP - Open Source Lyrics Projection #
|
||||||
|
# ---------------------------------------------------------------------- #
|
||||||
|
# Copyright (c) 2008-2019 OpenLP Developers #
|
||||||
|
# ---------------------------------------------------------------------- #
|
||||||
|
# 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 <https://www.gnu.org/licenses/>. #
|
||||||
|
##########################################################################
|
||||||
|
"""
|
||||||
|
The entrypoint for OpenLP
|
||||||
|
"""
|
||||||
|
import atexit
|
||||||
|
import faulthandler
|
||||||
|
import logging
|
||||||
|
import multiprocessing
|
||||||
|
import sys
|
||||||
|
|
||||||
|
# from OpenGL import GL
|
||||||
|
|
||||||
|
from openlp.core.app import main
|
||||||
|
from openlp.core.common import is_macosx, is_win
|
||||||
|
from openlp.core.common.applocation import AppLocation
|
||||||
|
from openlp.core.common.path import create_paths
|
||||||
|
|
||||||
|
log = logging.getLogger(__name__)
|
||||||
|
error_log_file = None
|
||||||
|
|
||||||
|
|
||||||
|
def tear_down_fault_handling():
|
||||||
|
"""
|
||||||
|
When Python exits, close the file we were using for the faulthandler
|
||||||
|
"""
|
||||||
|
global error_log_file
|
||||||
|
error_log_file.close()
|
||||||
|
|
||||||
|
|
||||||
|
def set_up_fault_handling():
|
||||||
|
"""
|
||||||
|
Set up the Python fault handler
|
||||||
|
"""
|
||||||
|
global error_log_file
|
||||||
|
# Create the cache directory if it doesn't exist, and enable the fault handler to log to an error log file
|
||||||
|
try:
|
||||||
|
create_paths(AppLocation.get_directory(AppLocation.CacheDir))
|
||||||
|
error_log_file = (AppLocation.get_directory(AppLocation.CacheDir) / 'error.log').open('wb')
|
||||||
|
atexit.register(tear_down_fault_handling)
|
||||||
|
faulthandler.enable(error_log_file)
|
||||||
|
except OSError:
|
||||||
|
log.exception('An exception occurred when enabling the fault handler')
|
||||||
|
atexit.unregister(tear_down_fault_handling)
|
||||||
|
if error_log_file:
|
||||||
|
error_log_file.close()
|
||||||
|
|
||||||
|
|
||||||
|
def start():
|
||||||
|
"""
|
||||||
|
Instantiate and run the application.
|
||||||
|
"""
|
||||||
|
set_up_fault_handling()
|
||||||
|
# Add support for using multiprocessing from frozen Windows executable (built using PyInstaller),
|
||||||
|
# see https://docs.python.org/3/library/multiprocessing.html#multiprocessing.freeze_support
|
||||||
|
if is_win():
|
||||||
|
multiprocessing.freeze_support()
|
||||||
|
# Mac OS X passes arguments like '-psn_XXXX' to the application. This argument is actually a process serial number.
|
||||||
|
# However, this causes a conflict with other OpenLP arguments. Since we do not use this argument we can delete it
|
||||||
|
# to avoid any potential conflicts.
|
||||||
|
if is_macosx():
|
||||||
|
sys.argv = [x for x in sys.argv if not x.startswith('-psn')]
|
||||||
|
main()
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
start()
|
@ -21,67 +21,9 @@
|
|||||||
# along with this program. If not, see <https://www.gnu.org/licenses/>. #
|
# along with this program. If not, see <https://www.gnu.org/licenses/>. #
|
||||||
##########################################################################
|
##########################################################################
|
||||||
"""
|
"""
|
||||||
The entrypoint for OpenLP
|
A compatibility entrypoint for OpenLP
|
||||||
"""
|
"""
|
||||||
import atexit
|
from openlp import __main__
|
||||||
import faulthandler
|
|
||||||
import logging
|
|
||||||
import multiprocessing
|
|
||||||
import sys
|
|
||||||
|
|
||||||
# from OpenGL import GL
|
|
||||||
|
|
||||||
from openlp.core.app import main
|
|
||||||
from openlp.core.common import is_macosx, is_win
|
|
||||||
from openlp.core.common.applocation import AppLocation
|
|
||||||
from openlp.core.common.path import create_paths
|
|
||||||
|
|
||||||
log = logging.getLogger(__name__)
|
|
||||||
error_log_file = None
|
|
||||||
|
|
||||||
|
|
||||||
def tear_down_fault_handling():
|
|
||||||
"""
|
|
||||||
When Python exits, close the file we were using for the faulthandler
|
|
||||||
"""
|
|
||||||
global error_log_file
|
|
||||||
error_log_file.close()
|
|
||||||
|
|
||||||
|
|
||||||
def set_up_fault_handling():
|
|
||||||
"""
|
|
||||||
Set up the Python fault handler
|
|
||||||
"""
|
|
||||||
global error_log_file
|
|
||||||
# Create the cache directory if it doesn't exist, and enable the fault handler to log to an error log file
|
|
||||||
try:
|
|
||||||
create_paths(AppLocation.get_directory(AppLocation.CacheDir))
|
|
||||||
error_log_file = (AppLocation.get_directory(AppLocation.CacheDir) / 'error.log').open('wb')
|
|
||||||
atexit.register(tear_down_fault_handling)
|
|
||||||
faulthandler.enable(error_log_file)
|
|
||||||
except OSError:
|
|
||||||
log.exception('An exception occurred when enabling the fault handler')
|
|
||||||
atexit.unregister(tear_down_fault_handling)
|
|
||||||
if error_log_file:
|
|
||||||
error_log_file.close()
|
|
||||||
|
|
||||||
|
|
||||||
def start():
|
|
||||||
"""
|
|
||||||
Instantiate and run the application.
|
|
||||||
"""
|
|
||||||
set_up_fault_handling()
|
|
||||||
# Add support for using multiprocessing from frozen Windows executable (built using PyInstaller),
|
|
||||||
# see https://docs.python.org/3/library/multiprocessing.html#multiprocessing.freeze_support
|
|
||||||
if is_win():
|
|
||||||
multiprocessing.freeze_support()
|
|
||||||
# Mac OS X passes arguments like '-psn_XXXX' to the application. This argument is actually a process serial number.
|
|
||||||
# However, this causes a conflict with other OpenLP arguments. Since we do not use this argument we can delete it
|
|
||||||
# to avoid any potential conflicts.
|
|
||||||
if is_macosx():
|
|
||||||
sys.argv = [x for x in sys.argv if not x.startswith('-psn')]
|
|
||||||
main()
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
start()
|
__main__.start()
|
||||||
|
3
setup.py
3
setup.py
@ -161,7 +161,6 @@ using a computer and a data projector.""",
|
|||||||
url='https://openlp.org/',
|
url='https://openlp.org/',
|
||||||
license='GPL-3.0-or-later',
|
license='GPL-3.0-or-later',
|
||||||
packages=find_packages(exclude=['ez_setup', 'tests*']),
|
packages=find_packages(exclude=['ez_setup', 'tests*']),
|
||||||
py_modules=['run_openlp'],
|
|
||||||
include_package_data=True,
|
include_package_data=True,
|
||||||
zip_safe=False,
|
zip_safe=False,
|
||||||
python_requires='>=3.6',
|
python_requires='>=3.6',
|
||||||
@ -209,5 +208,5 @@ using a computer and a data projector.""",
|
|||||||
'python-xlib; platform_system=="Linux"'
|
'python-xlib; platform_system=="Linux"'
|
||||||
],
|
],
|
||||||
setup_requires=['pytest-runner'],
|
setup_requires=['pytest-runner'],
|
||||||
entry_points={'gui_scripts': ['openlp = run_openlp:start']}
|
entry_points={'gui_scripts': ['openlp = openlp.__main__:start']}
|
||||||
)
|
)
|
||||||
|
Loading…
Reference in New Issue
Block a user