mirror of
https://github.com/pre-commit/pre-commit.git
synced 2026-04-15 18:11:48 +04:00
Use a proper runner for local hooks
This commit is contained in:
parent
3c4d673674
commit
fbdd840692
1 changed files with 16 additions and 1 deletions
|
|
@ -11,6 +11,7 @@ import pkg_resources
|
||||||
from cached_property import cached_property
|
from cached_property import cached_property
|
||||||
|
|
||||||
from pre_commit import five
|
from pre_commit import five
|
||||||
|
from pre_commit import git
|
||||||
from pre_commit.clientlib.validate_config import is_local_hooks
|
from pre_commit.clientlib.validate_config import is_local_hooks
|
||||||
from pre_commit.clientlib.validate_manifest import MANIFEST_JSON_SCHEMA
|
from pre_commit.clientlib.validate_manifest import MANIFEST_JSON_SCHEMA
|
||||||
from pre_commit.jsonschema_extensions import apply_defaults
|
from pre_commit.jsonschema_extensions import apply_defaults
|
||||||
|
|
@ -104,6 +105,16 @@ class Repository(object):
|
||||||
def cmd_runner(self):
|
def cmd_runner(self):
|
||||||
return PrefixedCommandRunner(self.repo_path_getter.repo_path)
|
return PrefixedCommandRunner(self.repo_path_getter.repo_path)
|
||||||
|
|
||||||
|
@cached_property
|
||||||
|
def local_cmd_runner(self):
|
||||||
|
return self.cmd_runner
|
||||||
|
|
||||||
|
def language_cmd_runner(self, language):
|
||||||
|
if language in ['script', 'system']:
|
||||||
|
return self.local_cmd_runner
|
||||||
|
else:
|
||||||
|
return self.cmd_runner
|
||||||
|
|
||||||
def require_installed(self):
|
def require_installed(self):
|
||||||
if self.__installed:
|
if self.__installed:
|
||||||
return
|
return
|
||||||
|
|
@ -193,7 +204,7 @@ class Repository(object):
|
||||||
"""
|
"""
|
||||||
self.require_installed()
|
self.require_installed()
|
||||||
return languages[hook['language']].run_hook(
|
return languages[hook['language']].run_hook(
|
||||||
self.cmd_runner, hook, file_args,
|
self.language_cmd_runner(hook['language']), hook, file_args,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -205,6 +216,10 @@ class LocalRepository(Repository):
|
||||||
for hook in self.repo_config['hooks']
|
for hook in self.repo_config['hooks']
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@cached_property
|
||||||
|
def local_cmd_runner(self):
|
||||||
|
return PrefixedCommandRunner(git.get_root())
|
||||||
|
|
||||||
|
|
||||||
class _UniqueList(list):
|
class _UniqueList(list):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue