Merge pull request #463 from pre-commit/shlex_more

Make shlex behaviour of entry more consistent
This commit is contained in:
Anthony Sottile 2017-01-05 12:20:58 -08:00 committed by GitHub
commit 251ff7f467
7 changed files with 19 additions and 17 deletions

View file

@ -3,7 +3,6 @@ from __future__ import unicode_literals
import hashlib
import os
import shlex
from pre_commit import five
from pre_commit.languages import helpers
@ -83,8 +82,8 @@ def run_hook(repo_cmd_runner, hook, file_args):
# automated cleanup of docker images.
build_docker_image(repo_cmd_runner, pull=False)
entry_parts = shlex.split(hook['entry'])
entry_executable, entry_args = entry_parts[0], entry_parts[1:]
hook_cmd = helpers.to_cmd(hook)
entry_executable, cmd_rest = hook_cmd[0], hook_cmd[1:]
cmd = (
'docker', 'run',
@ -94,6 +93,6 @@ def run_hook(repo_cmd_runner, hook, file_args):
'--workdir', '/src',
'--entrypoint', entry_executable,
docker_tag(repo_cmd_runner)
)
) + cmd_rest
return xargs(cmd + tuple(entry_args) + tuple(hook['args']), file_args)
return xargs(cmd, file_args)

View file

@ -1,5 +1,7 @@
from __future__ import unicode_literals
import shlex
from pre_commit.util import cmd_output
@ -12,3 +14,7 @@ def environment_dir(ENVIRONMENT_DIR, language_version):
return None
else:
return '{}-{}'.format(ENVIRONMENT_DIR, language_version)
def to_cmd(hook):
return tuple(shlex.split(hook['entry'])) + tuple(hook['args'])

View file

@ -64,4 +64,4 @@ def install_environment(
def run_hook(repo_cmd_runner, hook, file_args):
with in_env(repo_cmd_runner, hook['language_version']):
return xargs((hook['entry'],) + tuple(hook['args']), file_args)
return xargs(helpers.to_cmd(hook), file_args)

View file

@ -83,4 +83,4 @@ def install_environment(
def run_hook(repo_cmd_runner, hook, file_args):
with in_env(repo_cmd_runner, hook['language_version']):
return xargs((hook['entry'],) + tuple(hook['args']), file_args)
return xargs(helpers.to_cmd(hook), file_args)

View file

@ -128,4 +128,4 @@ def install_environment(
def run_hook(repo_cmd_runner, hook, file_args):
with in_env(repo_cmd_runner, hook['language_version']):
return xargs((hook['entry'],) + tuple(hook['args']), file_args)
return xargs(helpers.to_cmd(hook), file_args)

View file

@ -1,5 +1,6 @@
from __future__ import unicode_literals
from pre_commit.languages import helpers
from pre_commit.xargs import xargs
@ -16,7 +17,6 @@ def install_environment(
def run_hook(repo_cmd_runner, hook, file_args):
return xargs(
(repo_cmd_runner.prefix_dir + hook['entry'],) + tuple(hook['args']),
file_args,
)
cmd = helpers.to_cmd(hook)
cmd = (repo_cmd_runner.prefix_dir + cmd[0],) + cmd[1:]
return xargs(cmd, file_args)

View file

@ -1,7 +1,6 @@
from __future__ import unicode_literals
import shlex
from pre_commit.languages import helpers
from pre_commit.xargs import xargs
@ -18,6 +17,4 @@ def install_environment(
def run_hook(repo_cmd_runner, hook, file_args):
return xargs(
tuple(shlex.split(hook['entry'])) + tuple(hook['args']), file_args,
)
return xargs(helpers.to_cmd(hook), file_args)