forked from openlp/openlp
Use appdirs instead of pyxdg
appdirs is used for all systems except Windows. It has Windows support, so it could be used there as well.
This commit is contained in:
parent
bd3015babf
commit
5f23d3adea
@ -26,18 +26,13 @@ import logging
|
|||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
|
import appdirs
|
||||||
|
|
||||||
import openlp
|
import openlp
|
||||||
from openlp.core.common import get_frozen_path, is_win, is_macosx
|
from openlp.core.common import get_frozen_path, is_win, is_macosx
|
||||||
from openlp.core.common.path import Path, create_paths
|
from openlp.core.common.path import Path, create_paths
|
||||||
from openlp.core.common.settings import Settings
|
from openlp.core.common.settings import Settings
|
||||||
|
|
||||||
if not is_win() and not is_macosx():
|
|
||||||
try:
|
|
||||||
from xdg import BaseDirectory
|
|
||||||
XDG_BASE_AVAILABLE = True
|
|
||||||
except ImportError:
|
|
||||||
XDG_BASE_AVAILABLE = False
|
|
||||||
|
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
FROZEN_APP_PATH = Path(sys.argv[0]).parent
|
FROZEN_APP_PATH = Path(sys.argv[0]).parent
|
||||||
@ -143,8 +138,10 @@ def _get_os_dir_path(dir_type):
|
|||||||
elif dir_type == AppLocation.LanguageDir:
|
elif dir_type == AppLocation.LanguageDir:
|
||||||
return Path(openlp.__file__).parent
|
return Path(openlp.__file__).parent
|
||||||
return openlp_folder_path
|
return openlp_folder_path
|
||||||
elif is_macosx():
|
|
||||||
openlp_folder_path = Path(os.getenv('HOME'), 'Library', 'Application Support', 'openlp')
|
dirs = appdirs.AppDirs('openlp', multipath=True)
|
||||||
|
if is_macosx():
|
||||||
|
openlp_folder_path = Path(dirs.user_data_dir)
|
||||||
if dir_type == AppLocation.DataDir:
|
if dir_type == AppLocation.DataDir:
|
||||||
return openlp_folder_path / 'Data'
|
return openlp_folder_path / 'Data'
|
||||||
elif dir_type == AppLocation.LanguageDir:
|
elif dir_type == AppLocation.LanguageDir:
|
||||||
@ -152,15 +149,15 @@ def _get_os_dir_path(dir_type):
|
|||||||
return openlp_folder_path
|
return openlp_folder_path
|
||||||
else:
|
else:
|
||||||
if dir_type == AppLocation.LanguageDir:
|
if dir_type == AppLocation.LanguageDir:
|
||||||
directory = Path('/usr', 'local', 'share', 'openlp')
|
site_dirs = dirs.site_data_dir.split(os.pathsep)
|
||||||
|
directory = Path(site_dirs[0])
|
||||||
if directory.exists():
|
if directory.exists():
|
||||||
return directory
|
return directory
|
||||||
return Path('/usr', 'share', 'openlp')
|
return Path(site_dirs[1])
|
||||||
if XDG_BASE_AVAILABLE:
|
|
||||||
if dir_type == AppLocation.DataDir:
|
if dir_type == AppLocation.DataDir:
|
||||||
return Path(BaseDirectory.xdg_data_home, 'openlp')
|
return Path(dirs.user_data_dir)
|
||||||
elif dir_type == AppLocation.CacheDir:
|
elif dir_type == AppLocation.CacheDir:
|
||||||
return Path(BaseDirectory.xdg_cache_home, 'openlp')
|
return Path(dirs.user_cache_dir)
|
||||||
if dir_type == AppLocation.DataDir:
|
if dir_type == AppLocation.DataDir:
|
||||||
return Path(os.getenv('HOME'), '.openlp', 'data')
|
return Path(os.getenv('HOME'), '.openlp', 'data')
|
||||||
return Path(os.getenv('HOME'), '.openlp')
|
return Path(os.getenv('HOME'), '.openlp')
|
||||||
|
@ -79,6 +79,7 @@ MODULES = [
|
|||||||
'PyQt5.QtWebKit',
|
'PyQt5.QtWebKit',
|
||||||
'PyQt5.QtMultimedia',
|
'PyQt5.QtMultimedia',
|
||||||
'pymediainfo',
|
'pymediainfo',
|
||||||
|
'appdirs',
|
||||||
'sqlalchemy',
|
'sqlalchemy',
|
||||||
'alembic',
|
'alembic',
|
||||||
'sqlite3',
|
'sqlite3',
|
||||||
|
4
setup.py
4
setup.py
@ -113,6 +113,7 @@ finally:
|
|||||||
|
|
||||||
requires = [
|
requires = [
|
||||||
'alembic',
|
'alembic',
|
||||||
|
'appdirs',
|
||||||
'beautifulsoup4',
|
'beautifulsoup4',
|
||||||
'chardet',
|
'chardet',
|
||||||
'lxml',
|
'lxml',
|
||||||
@ -198,8 +199,7 @@ using a computer and a data projector.""",
|
|||||||
'odbc': ['pyodbc'],
|
'odbc': ['pyodbc'],
|
||||||
'postgresql': ['psycopg2'],
|
'postgresql': ['psycopg2'],
|
||||||
'spellcheck': ['pyenchant >= 1.6'],
|
'spellcheck': ['pyenchant >= 1.6'],
|
||||||
'sword-bibles': ['pysword'],
|
'sword-bibles': ['pysword']
|
||||||
'xdg': ['pyxdg']
|
|
||||||
},
|
},
|
||||||
tests_require=['nose2', 'PyICU', 'pylint'],
|
tests_require=['nose2', 'PyICU', 'pylint'],
|
||||||
test_suite='nose2.collector.collector',
|
test_suite='nose2.collector.collector',
|
||||||
|
Loading…
Reference in New Issue
Block a user