summaryrefslogtreecommitdiffstats
path: root/main.py
diff options
context:
space:
mode:
Diffstat (limited to 'main.py')
-rwxr-xr-xmain.py48
1 files changed, 3 insertions, 45 deletions
diff --git a/main.py b/main.py
index 2ab79b57..0b19aeb5 100755
--- a/main.py
+++ b/main.py
@@ -46,7 +46,7 @@ except ImportError:
46from color import SetDefaultColoring 46from color import SetDefaultColoring
47import event_log 47import event_log
48from repo_trace import SetTrace 48from repo_trace import SetTrace
49from git_command import git, GitCommand 49from git_command import git, GitCommand, RepoUserAgent
50from git_config import init_ssh, close_ssh 50from git_config import init_ssh, close_ssh
51from command import InteractiveCommand 51from command import InteractiveCommand
52from command import MirrorSafeCommand 52from command import MirrorSafeCommand
@@ -244,10 +244,6 @@ class _Repo(object):
244 return result 244 return result
245 245
246 246
247def _MyRepoPath():
248 return os.path.dirname(__file__)
249
250
251def _CheckWrapperVersion(ver, repo_path): 247def _CheckWrapperVersion(ver, repo_path):
252 if not repo_path: 248 if not repo_path:
253 repo_path = '~/bin/repo' 249 repo_path = '~/bin/repo'
@@ -299,51 +295,13 @@ def _PruneOptions(argv, opt):
299 continue 295 continue
300 i += 1 296 i += 1
301 297
302_user_agent = None
303
304def _UserAgent():
305 global _user_agent
306
307 if _user_agent is None:
308 py_version = sys.version_info
309
310 os_name = sys.platform
311 if os_name == 'linux2':
312 os_name = 'Linux'
313 elif os_name == 'win32':
314 os_name = 'Win32'
315 elif os_name == 'cygwin':
316 os_name = 'Cygwin'
317 elif os_name == 'darwin':
318 os_name = 'Darwin'
319
320 p = GitCommand(
321 None, ['describe', 'HEAD'],
322 cwd = _MyRepoPath(),
323 capture_stdout = True)
324 if p.Wait() == 0:
325 repo_version = p.stdout
326 if len(repo_version) > 0 and repo_version[-1] == '\n':
327 repo_version = repo_version[0:-1]
328 if len(repo_version) > 0 and repo_version[0] == 'v':
329 repo_version = repo_version[1:]
330 else:
331 repo_version = 'unknown'
332
333 _user_agent = 'git-repo/%s (%s) git/%s Python/%d.%d.%d' % (
334 repo_version,
335 os_name,
336 git.version_tuple().full,
337 py_version[0], py_version[1], py_version[2])
338 return _user_agent
339
340class _UserAgentHandler(urllib.request.BaseHandler): 298class _UserAgentHandler(urllib.request.BaseHandler):
341 def http_request(self, req): 299 def http_request(self, req):
342 req.add_header('User-Agent', _UserAgent()) 300 req.add_header('User-Agent', RepoUserAgent())
343 return req 301 return req
344 302
345 def https_request(self, req): 303 def https_request(self, req):
346 req.add_header('User-Agent', _UserAgent()) 304 req.add_header('User-Agent', RepoUserAgent())
347 return req 305 return req
348 306
349def _AddPasswordFromUserInput(handler, msg, req): 307def _AddPasswordFromUserInput(handler, msg, req):