From 7fd709ebd32764a15b26ec0e8086ef69080dd4cc Mon Sep 17 00:00:00 2001 From: Thierry Deo Date: Thu, 3 Sep 2015 11:18:52 +0200 Subject: [PATCH] Use ggrep instead of grep for pcre on mac os --- pre_commit/languages/pcre.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/pre_commit/languages/pcre.py b/pre_commit/languages/pcre.py index 248dd7de..141df409 100644 --- a/pre_commit/languages/pcre.py +++ b/pre_commit/languages/pcre.py @@ -1,5 +1,7 @@ from __future__ import unicode_literals +from sys import platform + from pre_commit.languages.helpers import file_args_to_stdin from pre_commit.util import shell_escape @@ -13,13 +15,17 @@ def install_environment(repo_cmd_runner, version='default'): def run_hook(repo_cmd_runner, hook, file_args): + grep_command = 'grep -H -n -P' + if platform == 'darwin': + grep_command = 'ggrep -H -n -P' + # For PCRE the entry is the regular expression to match return repo_cmd_runner.run( [ 'xargs', '-0', 'sh', '-c', # Grep usually returns 0 for matches, and nonzero for non-matches # so we flip it here. - '! grep -H -n -P {0} $@'.format(shell_escape(hook['entry'])), + '! {0} {1} $@'.format(grep_command, shell_escape(hook['entry'])), '--', ], stdin=file_args_to_stdin(file_args),