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

Unified Diff: tools/get_archive.py

Issue 10832149: Update script to switch through revision history successfully. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 years, 4 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 | « no previous file | tools/testing/perf_testing/run_perf_tests.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/get_archive.py
===================================================================
--- tools/get_archive.py (revision 10269)
+++ tools/get_archive.py (working copy)
@@ -33,20 +33,23 @@
DRT_VERSION = os.path.join(DRT_DIR, 'LAST_VERSION')
DRT_LATEST_PATTERN = (
'gs://dartium-archive/latest/drt-%(osname)s-inc-*.zip')
-DRT_PERMANENT_PREFIX = 'gs://dartium-archive/drt-%(osname)s-inc'
+DRT_PERMANENT_PATTERN = ('gs://dartium-archive/drt-%(osname)s-inc/drt-'
+ '%(osname)s-inc-%(num)s.%(num)s.zip')
DARTIUM_DIR = os.path.join('client', 'tests', 'dartium')
DARTIUM_VERSION = os.path.join(DARTIUM_DIR, 'LAST_VERSION')
DARTIUM_LATEST_PATTERN = (
'gs://dartium-archive/latest/dartium-%(osname)s-inc-*.zip')
-DARTIUM_PERMANENT_PREFIX = 'gs://dartium-archive/dartium-%(osname)s-inc'
+DARTIUM_PERMANENT_PATTERN = ('gs://dartium-archive/dartium-%(osname)s-inc/'
+ 'dartium-%(osname)s-inc-%(num)s.%(num)s.zip')
CHROMEDRIVER_DIR = os.path.join('tools', 'testing', 'dartium-chromedriver')
CHROMEDRIVER_VERSION = os.path.join(CHROMEDRIVER_DIR, 'LAST_VERSION')
CHROMEDRIVER_LATEST_PATTERN = (
'gs://dartium-archive/latest/chromedriver-%(osname)s-inc-*.zip')
-CHROMEDRIVER_PERMANENT_PREFIX = (
- 'gs://dartium-archive/chromedriver-%(osname)s-inc')
+CHROMEDRIVER_PERMANENT_PATTERN = ('gs://dartium-archive/chromedriver-%(osname)s'
+ '-inc/chromedriver-%(osname)s-inc-%(num)s.'
+ '%(num)s.zip')
SDK_DIR = os.path.join(utils.GetBuildRoot(utils.GuessOS(), 'release', 'ia32'),
'dart-sdk')
@@ -118,8 +121,8 @@
sys.exit(1)
-def get_dartium_latest(name, directory, version_file, latest_pattern,
- permanent_prefix):
+def get_dartium_revision(name, directory, version_file, latest_pattern,
+ permanent_prefix, revision_num=None):
"""Get the latest binary that is stored in the dartium archive.
Args:
@@ -128,17 +131,21 @@
version_file: name of file with the current version stamp
latest_pattern: the google store url pattern pointing to the latest binary
permanent_prefix: stable google store folder used to download versions
+ revision_num: The desired revision number to retrieve. If revision_num is
+ None, we return the latest revision.
"""
osdict = {'Darwin':'mac', 'Linux':'lucid64', 'Windows':'win'}
- def latest_func(out, osname):
+
+ def latest_func(out, osname, revision_num):
vsm 2012/08/04 15:27:15 Consider renaming from "latest" now that it gets a
Emily Fortuna 2012/08/04 20:36:51 Done.
output_lines = out.split()
latest = output_lines[-1]
- latest = (permanent_prefix % { 'osname' : osname }
- + latest[latest.rindex('/'):])
+ if not revision_num:
+ revision_num = latest[latest.rindex('-') + 1 : latest.index('.')]
+ latest = (permanent_prefix % { 'osname' : osname, 'num' : revision_num })
return latest
get_from_gsutil(name, directory, version_file, latest_pattern, osdict,
- latest_func)
+ latest_func, revision_num)
def get_sdk_revision(name, directory, version_file, latest_pattern,
permanent_prefix, revision_num):
@@ -153,7 +160,7 @@
revision_num: the desired revision number, or None for the most recent
"""
osdict = {'Darwin':'macos', 'Linux':'linux', 'Windows':'win32'}
- def find_permanent_url(out, osname):
+ def find_permanent_url(out, osname, not_used):
rev_num = revision_num
if not rev_num:
temp_file = tempfile.NamedTemporaryFile()
@@ -171,10 +178,10 @@
return latest
get_from_gsutil(name, directory, version_file, latest_pattern, osdict,
- find_permanent_url)
+ find_permanent_url, revision_num)
def get_from_gsutil(name, directory, version_file, latest_pattern,
- os_name_dict, get_permanent_url):
+ os_name_dict, get_permanent_url, revision_num = ''):
"""Download and unzip the desired file from Google Storage.
Args:
name: the name of the desired download
@@ -185,6 +192,8 @@
strings on the google storage site.
get_permanent_url: a function that accepts a listing of available files
and the os name, and returns a permanent URL for downloading.
+ revision_num: the desired revision number to get (if not supplied, we get
+ the latest revision)
"""
system = platform.system()
try:
@@ -202,7 +211,7 @@
if result == 0:
# use permanent link instead, just in case the latest zip entry gets deleted
# while we are downloading it.
- latest = get_permanent_url(out, osname)
+ latest = get_permanent_url(out, osname, revision_num)
else: # e.g. no access
print "Couldn't download %s: %s\n%s" % (name, pattern, out)
if not os.path.exists(version_file):
@@ -267,23 +276,21 @@
action='store', default=None)
args, positional = parser.parse_args()
- if args.revision and positional[0] != 'sdk':
- print ('Error: You can only specify the revision number for the SDK target.'
- ' For all other targets we return the latest build.')
- sys.exit(1)
if positional[0] == 'dartium':
- get_dartium_latest('Dartium', DARTIUM_DIR, DARTIUM_VERSION,
- DARTIUM_LATEST_PATTERN, DARTIUM_PERMANENT_PREFIX)
+ get_dartium_revision('Dartium', DARTIUM_DIR, DARTIUM_VERSION,
+ DARTIUM_LATEST_PATTERN, DARTIUM_PERMANENT_PATTERN,
+ args.revision)
elif positional[0] == 'chromedriver':
- get_dartium_latest('chromedriver', CHROMEDRIVER_DIR, CHROMEDRIVER_VERSION,
- CHROMEDRIVER_LATEST_PATTERN,
- CHROMEDRIVER_PERMANENT_PREFIX)
+ get_dartium_revision('chromedriver', CHROMEDRIVER_DIR, CHROMEDRIVER_VERSION,
+ CHROMEDRIVER_LATEST_PATTERN,
+ CHROMEDRIVER_PERMANENT_PATTERN, args.revision)
elif positional[0] == 'sdk':
get_sdk_revision('sdk', SDK_DIR, SDK_VERSION, SDK_LATEST_PATTERN,
SDK_PERMANENT, args.revision)
elif positional[0] == 'drt':
- get_dartium_latest('DumpRenderTree', DRT_DIR, DRT_VERSION,
- DRT_LATEST_PATTERN, DRT_PERMANENT_PREFIX)
+ get_dartium_revision('DumpRenderTree', DRT_DIR, DRT_VERSION,
+ DRT_LATEST_PATTERN, DRT_PERMANENT_PATTERN,
+ args.revision)
else:
print ('Please specify the target you wish to download from Google Storage '
'("drt", "dartium", "chromedriver", or "sdk")')
« no previous file with comments | « no previous file | tools/testing/perf_testing/run_perf_tests.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698