summaryrefslogtreecommitdiffstats
path: root/git_command.py
diff options
context:
space:
mode:
Diffstat (limited to 'git_command.py')
-rw-r--r--git_command.py14
1 files changed, 14 insertions, 0 deletions
diff --git a/git_command.py b/git_command.py
index df39ec09..c7e94fd0 100644
--- a/git_command.py
+++ b/git_command.py
@@ -48,6 +48,7 @@ _ssh_proxy_path = None
48_ssh_sock_path = None 48_ssh_sock_path = None
49_ssh_clients = [] 49_ssh_clients = []
50 50
51
51def ssh_sock(create=True): 52def ssh_sock(create=True):
52 global _ssh_sock_path 53 global _ssh_sock_path
53 if _ssh_sock_path is None: 54 if _ssh_sock_path is None:
@@ -61,6 +62,7 @@ def ssh_sock(create=True):
61 'master-%r@%h:%p') 62 'master-%r@%h:%p')
62 return _ssh_sock_path 63 return _ssh_sock_path
63 64
65
64def _ssh_proxy(): 66def _ssh_proxy():
65 global _ssh_proxy_path 67 global _ssh_proxy_path
66 if _ssh_proxy_path is None: 68 if _ssh_proxy_path is None:
@@ -69,15 +71,18 @@ def _ssh_proxy():
69 'git_ssh') 71 'git_ssh')
70 return _ssh_proxy_path 72 return _ssh_proxy_path
71 73
74
72def _add_ssh_client(p): 75def _add_ssh_client(p):
73 _ssh_clients.append(p) 76 _ssh_clients.append(p)
74 77
78
75def _remove_ssh_client(p): 79def _remove_ssh_client(p):
76 try: 80 try:
77 _ssh_clients.remove(p) 81 _ssh_clients.remove(p)
78 except ValueError: 82 except ValueError:
79 pass 83 pass
80 84
85
81def terminate_ssh_clients(): 86def terminate_ssh_clients():
82 global _ssh_clients 87 global _ssh_clients
83 for p in _ssh_clients: 88 for p in _ssh_clients:
@@ -88,8 +93,10 @@ def terminate_ssh_clients():
88 pass 93 pass
89 _ssh_clients = [] 94 _ssh_clients = []
90 95
96
91_git_version = None 97_git_version = None
92 98
99
93class _GitCall(object): 100class _GitCall(object):
94 def version_tuple(self): 101 def version_tuple(self):
95 global _git_version 102 global _git_version
@@ -102,11 +109,14 @@ class _GitCall(object):
102 109
103 def __getattr__(self, name): 110 def __getattr__(self, name):
104 name = name.replace('_', '-') 111 name = name.replace('_', '-')
112
105 def fun(*cmdv): 113 def fun(*cmdv):
106 command = [name] 114 command = [name]
107 command.extend(cmdv) 115 command.extend(cmdv)
108 return GitCommand(None, command).Wait() == 0 116 return GitCommand(None, command).Wait() == 0
109 return fun 117 return fun
118
119
110git = _GitCall() 120git = _GitCall()
111 121
112 122
@@ -187,8 +197,10 @@ class UserAgent(object):
187 197
188 return self._git_ua 198 return self._git_ua
189 199
200
190user_agent = UserAgent() 201user_agent = UserAgent()
191 202
203
192def git_require(min_version, fail=False, msg=''): 204def git_require(min_version, fail=False, msg=''):
193 git_version = git.version_tuple() 205 git_version = git.version_tuple()
194 if min_version <= git_version: 206 if min_version <= git_version:
@@ -201,9 +213,11 @@ def git_require(min_version, fail=False, msg=''):
201 sys.exit(1) 213 sys.exit(1)
202 return False 214 return False
203 215
216
204def _setenv(env, name, value): 217def _setenv(env, name, value):
205 env[name] = value.encode() 218 env[name] = value.encode()
206 219
220
207class GitCommand(object): 221class GitCommand(object):
208 def __init__(self, 222 def __init__(self,
209 project, 223 project,