2013-07-18 16:42:51 +00:00
|
|
|
#!/usr/bin/env python3
|
2008-11-22 09:28:03 +00:00
|
|
|
# -*- coding: utf-8 -*-
|
2013-07-18 19:28:35 +00:00
|
|
|
# vim: autoindent shiftwidth=4 expandtab textwidth=120 tabstop=4 softtabstop=4
|
2009-09-02 20:42:57 +00:00
|
|
|
|
2009-09-08 19:58:05 +00:00
|
|
|
###############################################################################
|
|
|
|
# OpenLP - Open Source Lyrics Projection #
|
|
|
|
# --------------------------------------------------------------------------- #
|
2017-12-29 09:15:48 +00:00
|
|
|
# Copyright (c) 2008-2018 OpenLP Developers #
|
2009-09-08 19:58:05 +00:00
|
|
|
# --------------------------------------------------------------------------- #
|
|
|
|
# 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; version 2 of the License. #
|
|
|
|
# #
|
|
|
|
# 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, write to the Free Software Foundation, Inc., 59 #
|
|
|
|
# Temple Place, Suite 330, Boston, MA 02111-1307 USA #
|
|
|
|
###############################################################################
|
2017-09-09 05:19:22 +00:00
|
|
|
"""
|
|
|
|
The entrypoint for OpenLP
|
|
|
|
"""
|
|
|
|
import faulthandler
|
2014-11-06 09:34:07 +00:00
|
|
|
import multiprocessing
|
2017-09-09 05:19:22 +00:00
|
|
|
import sys
|
2010-07-30 22:48:09 +00:00
|
|
|
|
2018-02-11 05:34:14 +00:00
|
|
|
from OpenGL import GL
|
|
|
|
|
2017-10-10 07:08:44 +00:00
|
|
|
from openlp.core.app import main
|
2014-11-06 09:34:07 +00:00
|
|
|
from openlp.core.common import is_win, is_macosx
|
2017-09-23 03:50:45 +00:00
|
|
|
from openlp.core.common.applocation import AppLocation
|
2017-10-07 07:05:07 +00:00
|
|
|
from openlp.core.common.path import create_paths
|
|
|
|
|
|
|
|
|
|
|
|
def set_up_fault_handling():
|
|
|
|
"""
|
|
|
|
Set up the Python fault handler
|
|
|
|
"""
|
|
|
|
# Create the cache directory if it doesn't exist, and enable the fault handler to log to an error log file
|
|
|
|
create_paths(AppLocation.get_directory(AppLocation.CacheDir))
|
2017-12-17 04:29:53 +00:00
|
|
|
faulthandler.enable((AppLocation.get_directory(AppLocation.CacheDir) / 'error.log').open('wb'))
|
2008-10-29 18:51:43 +00:00
|
|
|
|
2009-09-02 20:42:57 +00:00
|
|
|
|
2013-08-31 18:17:38 +00:00
|
|
|
if __name__ == '__main__':
|
2009-07-08 06:55:08 +00:00
|
|
|
"""
|
|
|
|
Instantiate and run the application.
|
|
|
|
"""
|
2017-10-23 22:09:57 +00:00
|
|
|
faulthandler.enable()
|
2017-10-07 07:05:07 +00:00
|
|
|
set_up_fault_handling()
|
2014-11-06 09:34:07 +00:00
|
|
|
# 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()
|
2014-09-04 20:10:34 +00:00
|
|
|
# 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.
|
2014-11-06 09:34:07 +00:00
|
|
|
if is_macosx():
|
2013-08-31 18:17:38 +00:00
|
|
|
sys.argv = [x for x in sys.argv if not x.startswith('-psn')]
|
2011-04-30 07:42:20 +00:00
|
|
|
main()
|