diff --git a/fdroidserver/common.py b/fdroidserver/common.py index 093b56be..87010370 100644 --- a/fdroidserver/common.py +++ b/fdroidserver/common.py @@ -134,11 +134,27 @@ env = None orig_path = None +def get_default_cachedir(): + """Get a cachedir, using appdirs for cross-platform, but works without. + + Once appdirs is installed everywhere, this function can be + removed. + + """ + appname = __name__.split('.')[0] + try: + import appdirs + + return appdirs.user_cache_dir(appname, 'F-Droid') + except ImportError: + return str(Path.home() / '.cache' / appname) + + # All paths in the config must be strings, never pathlib.Path instances default_config = { 'sdk_path': "$ANDROID_HOME", 'ndk_paths': {}, - 'cachedir': str(Path.home() / '.cache/fdroidserver'), + 'cachedir': get_default_cachedir(), 'java_paths': None, 'scan_binary': False, 'ant': "ant", diff --git a/setup.py b/setup.py index afff96b4..01d0d66a 100755 --- a/setup.py +++ b/setup.py @@ -91,6 +91,7 @@ setup( 'babel', ], install_requires=[ + 'appdirs', 'androguard >= 3.1.0, != 3.3.0, != 3.3.1, != 3.3.2, <4', 'clint', 'defusedxml',