summaryrefslogtreecommitdiffstats
path: root/git_command.py
diff options
context:
space:
mode:
authorMike Frysinger <vapier@google.com>2019-07-10 17:10:07 -0400
committerMike Frysinger <vapier@google.com>2019-10-01 05:39:27 +0000
commit369814b4a77adcc78b2549ad728e0d69175f08e8 (patch)
treeeccd05989cd69c424dce146b2ea76d0a7069b423 /git_command.py
parente37aa5f331aa39776d5db1a1f816b66496f60e0c (diff)
downloadgit-repo-369814b4a77adcc78b2549ad728e0d69175f08e8.tar.gz
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>
Diffstat (limited to 'git_command.py')
-rw-r--r--git_command.py46
1 files changed, 46 insertions, 0 deletions
diff --git a/git_command.py b/git_command.py
index 67423035..32dcde09 100644
--- a/git_command.py
+++ b/git_command.py
@@ -98,6 +98,52 @@ class _GitCall(object):
98 return fun 98 return fun
99git = _GitCall() 99git = _GitCall()
100 100
101
102_user_agent = None
103
104def RepoUserAgent():
105 """Return a User-Agent string suitable for HTTP-like services.
106
107 We follow the style as documented here:
108 https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent
109 """
110 global _user_agent
111
112 if _user_agent is None:
113 py_version = sys.version_info
114
115 os_name = sys.platform
116 if os_name == 'linux2':
117 os_name = 'Linux'
118 elif os_name == 'win32':
119 os_name = 'Win32'
120 elif os_name == 'cygwin':
121 os_name = 'Cygwin'
122 elif os_name == 'darwin':
123 os_name = 'Darwin'
124
125 p = GitCommand(
126 None, ['describe', 'HEAD'],
127 cwd=os.path.dirname(__file__),
128 capture_stdout=True)
129 if p.Wait() == 0:
130 repo_version = p.stdout
131 if repo_version and repo_version[-1] == '\n':
132 repo_version = repo_version[0:-1]
133 if repo_version and repo_version[0] == 'v':
134 repo_version = repo_version[1:]
135 else:
136 repo_version = 'unknown'
137
138 _user_agent = 'git-repo/%s (%s) git/%s Python/%d.%d.%d' % (
139 repo_version,
140 os_name,
141 git.version_tuple().full,
142 py_version.major, py_version.minor, py_version.micro)
143
144 return _user_agent
145
146
101def git_require(min_version, fail=False, msg=''): 147def git_require(min_version, fail=False, msg=''):
102 git_version = git.version_tuple() 148 git_version = git.version_tuple()
103 if min_version <= git_version: 149 if min_version <= git_version: