You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
92 lines
2.5 KiB
92 lines
2.5 KiB
#!/usr/bin/python2 |
|
# |
|
# Copyright 2013 Google Inc. All Rights Reserved. |
|
"""Script to find list of common images (first beta releases) in Chromeos. |
|
|
|
Display information about stable ChromeOS/Chrome versions to be used |
|
by the team developers. The purpose is to increase team productivity |
|
by using stable (known and tested) ChromeOS/Chrome versions instead of |
|
using randomly selected versions. Currently we define as a "stable" |
|
version the first Beta release in a particular release cycle. |
|
""" |
|
|
|
from __future__ import print_function |
|
|
|
__author__ = 'llozano@google.com (Luis Lozano)' |
|
|
|
import argparse |
|
import pickle |
|
import re |
|
import sys |
|
import urllib |
|
|
|
VERSIONS_HISTORY_URL = 'http://cros-omahaproxy.appspot.com/history' |
|
|
|
|
|
def DisplayBetas(betas): |
|
print('List of betas from %s' % VERSIONS_HISTORY_URL) |
|
for beta in betas: |
|
print(' Release', beta['chrome_major_version'], beta) |
|
return |
|
|
|
|
|
def FindAllBetas(all_versions): |
|
"""Get ChromeOS first betas from History URL.""" |
|
|
|
all_betas = [] |
|
prev_beta = {} |
|
for line in all_versions: |
|
match_obj = re.match( |
|
r'(?P<date>.*),(?P<chromeos_version>.*),' |
|
r'(?P<chrome_major_version>\d*).(?P<chrome_minor_version>.*),' |
|
r'(?P<chrome_appid>.*),beta-channel,,Samsung Chromebook Series 5 550', |
|
line) |
|
if match_obj: |
|
if prev_beta: |
|
if (prev_beta['chrome_major_version'] != |
|
match_obj.group('chrome_major_version')): |
|
all_betas.append(prev_beta) |
|
prev_beta = match_obj.groupdict() |
|
if prev_beta: |
|
all_betas.append(prev_beta) |
|
return all_betas |
|
|
|
|
|
def SerializeBetas(all_betas, serialize_file): |
|
with open(serialize_file, 'wb') as f: |
|
pickle.dump(all_betas, f) |
|
print('Serialized list of betas into', serialize_file) |
|
return |
|
|
|
|
|
def Main(argv): |
|
"""Get ChromeOS first betas list from history URL.""" |
|
|
|
parser = argparse.ArgumentParser() |
|
parser.add_argument('--serialize', |
|
dest='serialize', |
|
default=None, |
|
help='Save list of common images into the specified ' |
|
'file.') |
|
options = parser.parse_args(argv) |
|
|
|
try: |
|
opener = urllib.URLopener() |
|
all_versions = opener.open(VERSIONS_HISTORY_URL) |
|
except IOError as ioe: |
|
print('Cannot open', VERSIONS_HISTORY_URL) |
|
print(ioe) |
|
return 1 |
|
|
|
all_betas = FindAllBetas(all_versions) |
|
DisplayBetas(all_betas) |
|
if options.serialize: |
|
SerializeBetas(all_betas, options.serialize) |
|
all_versions.close() |
|
|
|
return 0 |
|
|
|
|
|
if __name__ == '__main__': |
|
retval = Main(sys.argv[1:]) |
|
sys.exit(retval)
|
|
|