mirror of
https://git.codelinaro.org/clo/tools/repo.git
synced 2025-05-20 13:56:17 +08:00
move UserAgent to git_command for wider user
We can't import the main module, so move the UserAgent helper out of it and into the git_command module so it can be used in more places. Bug: https://crbug.com/gerrit/11144 Change-Id: I8093c8a20bd1dc7d612d0e2a85180341817c0d86 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/231057 Tested-by: Mike Frysinger <vapier@google.com> Reviewed-by: David Pursehouse <dpursehouse@collab.net>
This commit is contained in:
@ -98,6 +98,52 @@ class _GitCall(object):
|
||||
return fun
|
||||
git = _GitCall()
|
||||
|
||||
|
||||
_user_agent = None
|
||||
|
||||
def RepoUserAgent():
|
||||
"""Return a User-Agent string suitable for HTTP-like services.
|
||||
|
||||
We follow the style as documented here:
|
||||
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent
|
||||
"""
|
||||
global _user_agent
|
||||
|
||||
if _user_agent is None:
|
||||
py_version = sys.version_info
|
||||
|
||||
os_name = sys.platform
|
||||
if os_name == 'linux2':
|
||||
os_name = 'Linux'
|
||||
elif os_name == 'win32':
|
||||
os_name = 'Win32'
|
||||
elif os_name == 'cygwin':
|
||||
os_name = 'Cygwin'
|
||||
elif os_name == 'darwin':
|
||||
os_name = 'Darwin'
|
||||
|
||||
p = GitCommand(
|
||||
None, ['describe', 'HEAD'],
|
||||
cwd=os.path.dirname(__file__),
|
||||
capture_stdout=True)
|
||||
if p.Wait() == 0:
|
||||
repo_version = p.stdout
|
||||
if repo_version and repo_version[-1] == '\n':
|
||||
repo_version = repo_version[0:-1]
|
||||
if repo_version and repo_version[0] == 'v':
|
||||
repo_version = repo_version[1:]
|
||||
else:
|
||||
repo_version = 'unknown'
|
||||
|
||||
_user_agent = 'git-repo/%s (%s) git/%s Python/%d.%d.%d' % (
|
||||
repo_version,
|
||||
os_name,
|
||||
git.version_tuple().full,
|
||||
py_version.major, py_version.minor, py_version.micro)
|
||||
|
||||
return _user_agent
|
||||
|
||||
|
||||
def git_require(min_version, fail=False, msg=''):
|
||||
git_version = git.version_tuple()
|
||||
if min_version <= git_version:
|
||||
|
Reference in New Issue
Block a user