| OLD | NEW |
| 1 #!/usr/bin/python | 1 #!/usr/bin/python |
| 2 # | 2 # |
| 3 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved. | 3 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved. |
| 4 # Use of this source code is governed by a BSD-style license that can be | 4 # Use of this source code is governed by a BSD-style license that can be |
| 5 # found in the LICENSE file. | 5 # found in the LICENSE file. |
| 6 | 6 |
| 7 """Wrapper for tests that are run on builders.""" | 7 """Wrapper for tests that are run on builders.""" |
| 8 | 8 |
| 9 import fileinput | 9 import fileinput |
| 10 import optparse | 10 import optparse |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 86 Info('Replacing line %s with %s' % (line, new_line)) | 86 Info('Replacing line %s with %s' % (line, new_line)) |
| 87 redirect_file.write('%s\n' % new_line) | 87 redirect_file.write('%s\n' % new_line) |
| 88 continue | 88 continue |
| 89 | 89 |
| 90 # Line does not need to be modified. | 90 # Line does not need to be modified. |
| 91 redirect_file.write(line) | 91 redirect_file.write(line) |
| 92 | 92 |
| 93 fileinput.close() | 93 fileinput.close() |
| 94 | 94 |
| 95 | 95 |
| 96 def _GreaterVersion(version_a, version_b): |
| 97 """Returns the higher version number of two version number strings.""" |
| 98 version_regex = re.compile('.*(\d+)\.(\d+)\.(\d+)\.(\d+).*') |
| 99 version_a_tokens = version_regex.match(version_a).groups() |
| 100 version_b_tokens = version_regex.match(version_b).groups() |
| 101 for i in range(4): |
| 102 (a, b) = (int(version_a_tokens[i]), int(version_b_tokens[i])) |
| 103 if a != b: |
| 104 if a > b: return version_a |
| 105 return version_b |
| 106 return version_a |
| 107 |
| 108 |
| 96 def GetLatestLinkFromPage(url, regex): | 109 def GetLatestLinkFromPage(url, regex): |
| 97 """Returns the latest link from the given url that matches regex. | 110 """Returns the latest link from the given url that matches regex. |
| 98 | 111 |
| 99 Args: | 112 Args: |
| 100 url: Url to download and parse. | 113 url: Url to download and parse. |
| 101 regex: Regular expression to match links against. | 114 regex: Regular expression to match links against. |
| 102 """ | 115 """ |
| 103 url_file = urllib.urlopen(url) | 116 url_file = urllib.urlopen(url) |
| 104 url_html = url_file.read() | 117 url_html = url_file.read() |
| 118 |
| 105 url_file.close() | 119 url_file.close() |
| 106 | 120 |
| 107 # Parses links with versions embedded. | 121 # Parses links with versions embedded. |
| 108 url_parser = HTMLDirectoryParser(regex=regex) | 122 url_parser = HTMLDirectoryParser(regex=regex) |
| 109 url_parser.feed(url_html) | 123 url_parser.feed(url_html) |
| 110 return max(url_parser.link_list) | 124 return reduce(_GreaterVersion, url_parser.link_list) |
| 111 | 125 |
| 112 | 126 |
| 113 def GetNewestLinkFromZipBase(board, channel, zip_server_base): | 127 def GetNewestLinkFromZipBase(board, channel, zip_server_base): |
| 114 """Returns the url to the newest image from the zip server. | 128 """Returns the url to the newest image from the zip server. |
| 115 | 129 |
| 116 Args: | 130 Args: |
| 117 board: board for the image zip. | 131 board: board for the image zip. |
| 118 channel: channel for the image zip. | 132 channel: channel for the image zip. |
| 119 zip_server_base: base url for zipped images. | 133 zip_server_base: base url for zipped images. |
| 120 """ | 134 """ |
| (...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 280 options.remote) | 294 options.remote) |
| 281 | 295 |
| 282 | 296 |
| 283 if __name__ == '__main__': | 297 if __name__ == '__main__': |
| 284 try: | 298 try: |
| 285 main() | 299 main() |
| 286 except Exception: | 300 except Exception: |
| 287 print "Got exception." | 301 print "Got exception." |
| 288 traceback.print_exc(file=sys.stdout) | 302 traceback.print_exc(file=sys.stdout) |
| 289 | 303 |
| OLD | NEW |