Chromium Code Reviews| Index: testing_support/gerrit-init.sh |
| diff --git a/testing_support/gerrit-init.sh b/testing_support/gerrit-init.sh |
| index 706534728afb3d4a62524c2ad3f7412e9fd1695b..dc32959a4f5555a5c8649376d04c2531f47758a0 100755 |
| --- a/testing_support/gerrit-init.sh |
| +++ b/testing_support/gerrit-init.sh |
| @@ -77,23 +77,27 @@ import re |
| import sys |
| requested_version = sys.argv[1] if len(sys.argv) > 1 else None |
| -gerrit_re = re.compile('gerrit(?:-full)?-([0-9.]+)(-rc[0-9]+)?[.]war') |
| +gerrit_re = re.compile('gerrit(?:-full|-snapshot)?-([0-9.]+)(-rc[0-9]+)?' |
|
szager
2014/02/18 23:37:05
Can you give me an example of a string that would
szager
2014/02/18 23:47:20
Never mind; cut-paste error.
|
| + '(?:-([0-9]*)-g[0-9a-f]+)?[.]war') |
| j = json.load(sys.stdin) |
| items = [(x, gerrit_re.match(x['name'])) for x in j['items']] |
| -items = [(x, m.group(1), m.group(2)) for x, m in items if m] |
| +items = [(x, m.groups()) for x, m in items if m] |
| + |
| def _cmp(a, b): |
| - an = a[1].split('.') |
| - bn = b[1].split('.') |
| - while len(an) < len(bn): |
| - an.append('0') |
| - while len(bn) < len(an): |
| - bn.append('0') |
| - an.append(a[2][3:] if a[2] else '1000') |
| - bn.append(b[2][3:] if b[2] else '1000') |
| - for i in range(len(an)): |
| - if an[i] != bn[i]: |
| - return -1 if int(an[i]) > int(bn[i]) else 1 |
| - return 0 |
| + a_version, a_rc, a_commits = a[1] |
| + b_version, b_rc, b_commits = b[1] |
| + a_parts = a_version.split('.') |
| + b_parts = b_version.split('.') |
| + while len(a_parts) < len(b_parts): |
| + a_parts.append('0') |
| + while len(b_parts) < len(a_parts): |
| + b_parts.append('0') |
| + a_parts.append(a_rc[3:] if a_rc else '1000') |
| + b_parts.append(b_rc[3:] if b_rc else '1000') |
| + a_parts.append(a_commits if a_commits else '0') |
| + b_parts.append(b_commits if b_commits else '0') |
| + |
| + return -cmp(map(int, a_parts), map(int, b_parts)) |
| if requested_version: |
| for info, version in items: |