Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(19)

Unified Diff: tools/buildbot_globals.py

Issue 132423002: Remove references to Skia's SVN repository (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Re-change first link in view.html and view-platform.html Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tools/build-tot-chromium.sh ('k') | tools/submit_try » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/buildbot_globals.py
diff --git a/tools/buildbot_globals.py b/tools/buildbot_globals.py
index c3d222739665ae86a43269b66cf419caadf7f543..8d0e43897b7290d14f129afa964b8e34952f5bdf 100755
--- a/tools/buildbot_globals.py
+++ b/tools/buildbot_globals.py
@@ -8,14 +8,21 @@
Provides read access to buildbot's global_variables.json .
"""
+
+from contextlib import closing
+
+import HTMLParser
import json
import svn
+import sys
+import urllib2
+
_global_vars = None
-GLOBAL_VARS_JSON_URL = (
- 'http://skia.googlecode.com/svn/buildbot/site_config/global_variables.json')
+GLOBAL_VARS_JSON_URL = ('https://skia.googlesource.com/buildbot/+'
+ '/master/site_config/global_variables.json')
class GlobalVarsRetrievalError(Exception):
@@ -38,13 +45,44 @@ class NoSuchGlobalVariable(KeyError):
pass
+def retrieve_from_googlesource(url):
+ """Retrieve the given file from GoogleSource's HTTP interface, trimming the
+ extraneous HTML. Intended to be a GoogleSource equivalent of "svn cat".
+
+ This just returns the unescaped contents of the first <pre> tag which matches
+ our expectations for GoogleSource's HTTP interface. If that interface changes,
+ this function will almost surely break.
+
+ Args:
+ url: string; the URL of the file to retrieve.
+ Returns:
+ The contents of the file in GoogleSource, stripped of the extra HTML from
+ the HTML interface.
+ """
+ with closing(urllib2.urlopen(url)) as f:
+ contents = f.read()
+ pre_open = '<pre class="git-blob prettyprint linenums lang-json">'
+ pre_close = '</pre>'
+ start_index = contents.find(pre_open)
+ end_index = contents.find(pre_close)
+ parser = HTMLParser.HTMLParser()
+ return parser.unescape(contents[start_index + len(pre_open):end_index])
+
+
def Get(var_name):
- '''Return the value associated with this name in global_variables.json.
- Raises NoSuchGlobalVariable if there is no variable with that name.'''
+ """Return the value associated with this name in global_variables.json.
+
+ Args:
+ var_name: string; the variable to look up.
+ Returns:
+ The value of the variable.
+ Raises:
+ NoSuchGlobalVariable if there is no variable with that name.
+ """
global _global_vars
if not _global_vars:
try:
- global_vars_text = svn.Cat(GLOBAL_VARS_JSON_URL)
+ global_vars_text = retrieve_from_googlesource(GLOBAL_VARS_JSON_URL)
except Exception:
raise GlobalVarsRetrievalError('Failed to retrieve %s.' %
GLOBAL_VARS_JSON_URL)
@@ -56,3 +94,7 @@ def Get(var_name):
return _global_vars[var_name]['value']
except KeyError:
raise NoSuchGlobalVariable(var_name)
+
+
+if __name__ == '__main__':
+ print Get(sys.argv[1])
« no previous file with comments | « tools/build-tot-chromium.sh ('k') | tools/submit_try » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698