mirror of
https://github.com/pre-commit/pre-commit.git
synced 2026-01-14 04:50:20 -06:00
Pass language_version to the install method for each language.
This commit is contained in:
@@ -24,7 +24,7 @@ def in_env(repo_cmd_runner):
|
||||
yield NodeEnv(repo_cmd_runner)
|
||||
|
||||
|
||||
def install_environment(repo_cmd_runner):
|
||||
def install_environment(repo_cmd_runner, version='default'):
|
||||
assert repo_cmd_runner.exists('package.json')
|
||||
|
||||
with clean_path_on_failure(repo_cmd_runner.path(python.ENVIRONMENT_DIR)):
|
||||
|
||||
@@ -18,7 +18,7 @@ def in_env(repo_cmd_runner):
|
||||
yield PythonEnv(repo_cmd_runner)
|
||||
|
||||
|
||||
def install_environment(repo_cmd_runner):
|
||||
def install_environment(repo_cmd_runner, version='default'):
|
||||
assert repo_cmd_runner.exists('setup.py')
|
||||
|
||||
# Install a virtualenv
|
||||
|
||||
@@ -56,7 +56,7 @@ def _install_rbenv(repo_cmd_runner):
|
||||
)
|
||||
|
||||
|
||||
def install_environment(repo_cmd_runner):
|
||||
def install_environment(repo_cmd_runner, version='default'):
|
||||
with clean_path_on_failure(repo_cmd_runner.path('rbenv')):
|
||||
_install_rbenv(repo_cmd_runner)
|
||||
with in_env(repo_cmd_runner) as ruby_env:
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
ENVIRONMENT_DIR = None
|
||||
|
||||
|
||||
def install_environment(repo_cmd_runner):
|
||||
def install_environment(repo_cmd_runner, version='default'):
|
||||
"""Installation for script type is a noop."""
|
||||
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ import shlex
|
||||
ENVIRONMENT_DIR = None
|
||||
|
||||
|
||||
def install_environment(repo_cmd_runner):
|
||||
def install_environment(repo_cmd_runner, version='default'):
|
||||
"""Installation for system type is a noop."""
|
||||
|
||||
|
||||
|
||||
@@ -29,7 +29,10 @@ class Repository(object):
|
||||
|
||||
@cached_property
|
||||
def languages(self):
|
||||
return set(hook['language'] for hook in self.hooks.values())
|
||||
return set(
|
||||
(hook['language'], hook['language_version'])
|
||||
for hook in self.hooks.values()
|
||||
)
|
||||
|
||||
@cached_property
|
||||
def hooks(self):
|
||||
@@ -56,7 +59,7 @@ class Repository(object):
|
||||
|
||||
def install(self):
|
||||
"""Install the hook repository."""
|
||||
for language_name in self.languages:
|
||||
for language_name, language_version in self.languages:
|
||||
language = languages[language_name]
|
||||
if (
|
||||
language.ENVIRONMENT_DIR is None or
|
||||
@@ -64,7 +67,7 @@ class Repository(object):
|
||||
):
|
||||
# The language is already installed
|
||||
continue
|
||||
language.install_environment(self.cmd_runner)
|
||||
language.install_environment(self.cmd_runner, language_version)
|
||||
|
||||
def run_hook(self, hook_id, file_args):
|
||||
"""Run a hook.
|
||||
|
||||
@@ -113,7 +113,7 @@ def test_sha(mock_repo_config):
|
||||
@pytest.mark.integration
|
||||
def test_languages(config_for_python_hooks_repo, store):
|
||||
repo = Repository.create(config_for_python_hooks_repo, store)
|
||||
assert repo.languages == set(['python'])
|
||||
assert repo.languages == set([('python', 'default')])
|
||||
|
||||
|
||||
def test_reinstall(config_for_python_hooks_repo, store):
|
||||
|
||||
Reference in New Issue
Block a user