mirror of
https://github.com/pre-commit/pre-commit.git
synced 2026-02-17 00:04:42 +04:00
41 lines
1.1 KiB
Python
41 lines
1.1 KiB
Python
from __future__ import annotations
|
|
|
|
from collections.abc import Sequence
|
|
|
|
from pre_commit import lang_base
|
|
from pre_commit.languages.docker import docker_cmd
|
|
from pre_commit.prefix import Prefix
|
|
|
|
ENVIRONMENT_DIR = None
|
|
get_default_version = lang_base.basic_get_default_version
|
|
health_check = lang_base.basic_health_check
|
|
install_environment = lang_base.no_install
|
|
in_env = lang_base.no_env
|
|
|
|
|
|
def run_hook(
|
|
prefix: Prefix,
|
|
entry: str,
|
|
args: Sequence[str],
|
|
file_args: Sequence[str],
|
|
*,
|
|
is_local: bool,
|
|
require_serial: bool,
|
|
color: bool,
|
|
) -> tuple[int, bytes]: # pragma: win32 no cover
|
|
cmd = lang_base.hook_cmd(entry, args)
|
|
|
|
# To prevent duplicate simultaneous image pull attempts in `run_xargs`, we
|
|
# try to precache the Docker image by pulling it here first
|
|
try:
|
|
image_name = cmd[2 if cmd[0] == '--entrypoint' else 0]
|
|
lang_base.setup_cmd(prefix, ('docker', 'pull', image_name))
|
|
except Exception:
|
|
pass
|
|
|
|
return lang_base.run_xargs(
|
|
docker_cmd(color=color) + cmd,
|
|
file_args,
|
|
require_serial=require_serial,
|
|
color=color,
|
|
)
|