From 027953495f40266f9c4c74c5d1b197e5aadbd1aa Mon Sep 17 00:00:00 2001 From: ryneeverett Date: Thu, 28 Nov 2019 06:22:28 +0000 Subject: [PATCH] Enable system LanguageTool. Resolve #15. --- README.rst | 3 +++ language_check/__init__.py | 30 ++++++++++++++++-------------- setup.py | 3 ++- 3 files changed, 21 insertions(+), 15 deletions(-) diff --git a/README.rst b/README.rst index 2fb3933..54d06d5 100644 --- a/README.rst +++ b/README.rst @@ -70,6 +70,9 @@ To overwrite the host part of URL that is used to download LanguageTool-{version - SET LANGUAGE_CHECK_DOWNLOAD_HOST = [alternate URL] +To use an existing installation of LanguageTool in the CLASSPATH rather than downloading it:: + + - SET LANGUAGE_CHECK_SYSTEM_LANGUAGETOOL = 1 Prerequisites ------------- diff --git a/language_check/__init__.py b/language_check/__init__.py index 793c055..7d2cf31 100644 --- a/language_check/__init__.py +++ b/language_check/__init__.py @@ -568,9 +568,6 @@ def get_lt_dir(base_dir): pass else: language_check_dir = get_lt_dir(base_dir) - if not language_check_dir: - raise PathError("can't find LanguageTool directory in {!r}" - .format(base_dir)) cache['language_check_dir'] = language_check_dir return language_check_dir @@ -594,8 +591,12 @@ def get_server_cmd(port=None): cmd = cache['server_cmd'] except KeyError: java_path, jar_path = get_jar_info() - cmd = [java_path, '-cp', jar_path, - 'org.languagetool.server.HTTPServer'] + + cmd = [java_path] + if jar_path: + cmd.extend(['-cp', jar_path]) + cmd.append('org.languagetool.server.HTTPServer') + cache['server_cmd'] = cmd return cmd if port is None else cmd + ['-p', str(port)] @@ -609,17 +610,18 @@ def get_jar_info(): raise JavaError("can't find Java") dir_name = get_directory() jar_path = None - for jar_name in JAR_NAMES: - for jar_path in glob.glob(os.path.join(dir_name, jar_name)): - if os.path.isfile(jar_path): + if dir_name: # If no directory was found, assume jars are in CLASSPATH. + for jar_name in JAR_NAMES: + for jar_path in glob.glob(os.path.join(dir_name, jar_name)): + if os.path.isfile(jar_path): + break + else: + jar_path = None + if jar_path: break else: - jar_path = None - if jar_path: - break - else: - raise PathError("can't find languagetool-standalone in {!r}" - .format(dir_name)) + raise PathError("can't find languagetool-standalone in {!r}" + .format(dir_name)) cache['jar_info'] = java_path, jar_path return java_path, jar_path diff --git a/setup.py b/setup.py index 44f0f31..901b79d 100755 --- a/setup.py +++ b/setup.py @@ -581,7 +581,8 @@ def language_tool_hook(config): del config['files']['package_data'] elif any(arg.startswith(('install', 'build', 'bdist')) for arg in sys.argv): - download_lt() + if not os.environ.get('LANGUAGE_CHECK_SYSTEM_LANGUAGETOOL'): + download_lt() def main():