55import sys
66
77from pre_commit .util import cmd_output
8+ from pre_commit .util import cmd_output_b
89
910
1011logger = logging .getLogger (__name__ )
@@ -50,8 +51,8 @@ def get_git_dir(git_root='.'):
5051
5152
5253def get_remote_url (git_root ):
53- ret = cmd_output ('git' , 'config' , 'remote.origin.url' , cwd = git_root )[ 1 ]
54- return ret .strip ()
54+ _ , out , _ = cmd_output ('git' , 'config' , 'remote.origin.url' , cwd = git_root )
55+ return out .strip ()
5556
5657
5758def is_in_merge_conflict ():
@@ -105,8 +106,8 @@ def get_staged_files(cwd=None):
105106
106107
107108def intent_to_add_files ():
108- _ , stdout_binary , _ = cmd_output ('git' , 'status' , '--porcelain' , '-z' )
109- parts = list (reversed (zsplit (stdout_binary )))
109+ _ , stdout , _ = cmd_output ('git' , 'status' , '--porcelain' , '-z' )
110+ parts = list (reversed (zsplit (stdout )))
110111 intent_to_add = []
111112 while parts :
112113 line = parts .pop ()
@@ -140,16 +141,21 @@ def has_diff(*args, **kwargs):
140141 repo = kwargs .pop ('repo' , '.' )
141142 assert not kwargs , kwargs
142143 cmd = ('git' , 'diff' , '--quiet' , '--no-ext-diff' ) + args
143- return cmd_output (* cmd , cwd = repo , retcode = None )[0 ]
144+ return cmd_output_b (* cmd , cwd = repo , retcode = None )[0 ]
145+
146+
147+ def has_core_hookpaths_set ():
148+ _ , out , _ = cmd_output_b ('git' , 'config' , 'core.hooksPath' , retcode = None )
149+ return bool (out .strip ())
144150
145151
146152def init_repo (path , remote ):
147153 if os .path .isdir (remote ):
148154 remote = os .path .abspath (remote )
149155
150156 env = no_git_env ()
151- cmd_output ('git' , 'init' , path , env = env )
152- cmd_output ('git' , 'remote' , 'add' , 'origin' , remote , cwd = path , env = env )
157+ cmd_output_b ('git' , 'init' , path , env = env )
158+ cmd_output_b ('git' , 'remote' , 'add' , 'origin' , remote , cwd = path , env = env )
153159
154160
155161def commit (repo = '.' ):
@@ -158,7 +164,7 @@ def commit(repo='.'):
158164 env ['GIT_AUTHOR_NAME' ] = env ['GIT_COMMITTER_NAME' ] = name
159165 env ['GIT_AUTHOR_EMAIL' ] = env ['GIT_COMMITTER_EMAIL' ] = email
160166 cmd = ('git' , 'commit' , '--no-edit' , '--no-gpg-sign' , '-n' , '-minit' )
161- cmd_output (* cmd , cwd = repo , env = env )
167+ cmd_output_b (* cmd , cwd = repo , env = env )
162168
163169
164170def git_path (name , repo = '.' ):
0 commit comments