Index: testing_support/gerrit-init.sh |
diff --git a/testing_support/gerrit-init.sh b/testing_support/gerrit-init.sh |
index dc32959a4f5555a5c8649376d04c2531f47758a0..706534728afb3d4a62524c2ad3f7412e9fd1695b 100755 |
--- a/testing_support/gerrit-init.sh |
+++ b/testing_support/gerrit-init.sh |
@@ -77,27 +77,23 @@ import re |
import sys |
requested_version = sys.argv[1] if len(sys.argv) > 1 else None |
-gerrit_re = re.compile('gerrit(?:-full|-snapshot)?-([0-9.]+)(-rc[0-9]+)?' |
- '(?:-([0-9]*)-g[0-9a-f]+)?[.]war') |
+gerrit_re = re.compile('gerrit(?:-full)?-([0-9.]+)(-rc[0-9]+)?[.]war') |
j = json.load(sys.stdin) |
items = [(x, gerrit_re.match(x['name'])) for x in j['items']] |
-items = [(x, m.groups()) for x, m in items if m] |
- |
+items = [(x, m.group(1), m.group(2)) for x, m in items if m] |
def _cmp(a, b): |
- 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)) |
+ 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 |
if requested_version: |
for info, version in items: |