Merge pull request #292 from pricematch/pcre_args

Allow args for pcre hook
This commit is contained in:
Anthony Sottile
2015-11-18 10:25:15 -08:00
3 changed files with 24 additions and 1 deletions

View File

@@ -25,7 +25,9 @@ def run_hook(repo_cmd_runner, hook, file_args):
'xargs', '-0', 'sh', '-c',
# Grep usually returns 0 for matches, and nonzero for non-matches
# so we flip it here.
'! {0} {1} $@'.format(grep_command, shell_escape(hook['entry'])),
'! {0} {1} {2} $@'.format(
grep_command, ' '.join(hook['args']),
shell_escape(hook['entry'])),
'--',
],
stdin=file_args_to_stdin(file_args),

View File

@@ -8,3 +8,9 @@
entry: ^\[INFO\]
language: pcre
files: ''
- id: regex-with-grep-args
name: Regex with grep extra arguments
entry: foo\sbar
language: pcre
files: ''
args: [-z]

View File

@@ -222,6 +222,21 @@ def test_pcre_hook_matching(tempdir_factory, store):
)
@xfailif_no_pcre_support
@pytest.mark.integration
def test_pcre_hook_extra_multiline_option(tempdir_factory, store):
path = git_dir(tempdir_factory)
with cwd(path):
with io.open('herp', 'w') as herp:
herp.write("foo\nbar\n")
_test_hook_repo(
tempdir_factory, store, 'pcre_hooks_repo',
'regex-with-grep-args', ['herp'], b"herp:1:foo\nbar\n\x00",
expected_return_code=123,
)
@xfailif_no_pcre_support
@pytest.mark.integration
def test_pcre_many_files(tempdir_factory, store):