| OLD | NEW |
| 1 #!/bin/bash | 1 #!/bin/bash |
| 2 # Copyright (c) 2013 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| 3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
| 4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
| 5 | 5 |
| 6 set -e | 6 set -e |
| 7 | 7 |
| 8 http_port=8080 | 8 http_port=8080 |
| 9 ssh_port=29418 | 9 ssh_port=29418 |
| 10 | 10 |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 70 # ... | 70 # ... |
| 71 # } | 71 # } |
| 72 # | 72 # |
| 73 # ...and prints the name and md5sum of the corresponding *.war file. | 73 # ...and prints the name and md5sum of the corresponding *.war file. |
| 74 | 74 |
| 75 import json | 75 import json |
| 76 import re | 76 import re |
| 77 import sys | 77 import sys |
| 78 | 78 |
| 79 requested_version = sys.argv[1] if len(sys.argv) > 1 else None | 79 requested_version = sys.argv[1] if len(sys.argv) > 1 else None |
| 80 gerrit_re = re.compile('gerrit(?:-full|-snapshot)?-([0-9.]+)(-rc[0-9]+)?' | 80 gerrit_re = re.compile('gerrit(?:-full)?-([0-9.]+)(-rc[0-9]+)?[.]war') |
| 81 '(?:-([0-9]*)-g[0-9a-f]+)?[.]war') | |
| 82 j = json.load(sys.stdin) | 81 j = json.load(sys.stdin) |
| 83 items = [(x, gerrit_re.match(x['name'])) for x in j['items']] | 82 items = [(x, gerrit_re.match(x['name'])) for x in j['items']] |
| 84 items = [(x, m.groups()) for x, m in items if m] | 83 items = [(x, m.group(1), m.group(2)) for x, m in items if m] |
| 85 | |
| 86 def _cmp(a, b): | 84 def _cmp(a, b): |
| 87 a_version, a_rc, a_commits = a[1] | 85 an = a[1].split('.') |
| 88 b_version, b_rc, b_commits = b[1] | 86 bn = b[1].split('.') |
| 89 a_parts = a_version.split('.') | 87 while len(an) < len(bn): |
| 90 b_parts = b_version.split('.') | 88 an.append('0') |
| 91 while len(a_parts) < len(b_parts): | 89 while len(bn) < len(an): |
| 92 a_parts.append('0') | 90 bn.append('0') |
| 93 while len(b_parts) < len(a_parts): | 91 an.append(a[2][3:] if a[2] else '1000') |
| 94 b_parts.append('0') | 92 bn.append(b[2][3:] if b[2] else '1000') |
| 95 a_parts.append(a_rc[3:] if a_rc else '1000') | 93 for i in range(len(an)): |
| 96 b_parts.append(b_rc[3:] if b_rc else '1000') | 94 if an[i] != bn[i]: |
| 97 a_parts.append(a_commits if a_commits else '0') | 95 return -1 if int(an[i]) > int(bn[i]) else 1 |
| 98 b_parts.append(b_commits if b_commits else '0') | 96 return 0 |
| 99 | |
| 100 return -cmp(map(int, a_parts), map(int, b_parts)) | |
| 101 | 97 |
| 102 if requested_version: | 98 if requested_version: |
| 103 for info, version in items: | 99 for info, version in items: |
| 104 if version == requested_version: | 100 if version == requested_version: |
| 105 print '"%s" "%s"' % (info['name'], info['md5Hash']) | 101 print '"%s" "%s"' % (info['name'], info['md5Hash']) |
| 106 sys.exit(0) | 102 sys.exit(0) |
| 107 print >> sys.stderr, 'No such Gerrit version: %s' % requested_version | 103 print >> sys.stderr, 'No such Gerrit version: %s' % requested_version |
| 108 sys.exit(1) | 104 sys.exit(1) |
| 109 | 105 |
| 110 items.sort(cmp=_cmp) | 106 items.sort(cmp=_cmp) |
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 203 To use SSH API: | 199 To use SSH API: |
| 204 ssh ${username}@localhost -p ${ssh_port} -i ${rundir}/tmp/id_rsa gerrit | 200 ssh ${username}@localhost -p ${ssh_port} -i ${rundir}/tmp/id_rsa gerrit |
| 205 | 201 |
| 206 To enable 'git push' without a password prompt: | 202 To enable 'git push' without a password prompt: |
| 207 git config credential.helper 'store --file=${rundir}/tmp/.git-credentials' | 203 git config credential.helper 'store --file=${rundir}/tmp/.git-credentials' |
| 208 | 204 |
| 209 To stop the server: | 205 To stop the server: |
| 210 ${rundir}/bin/gerrit.sh stop | 206 ${rundir}/bin/gerrit.sh stop |
| 211 | 207 |
| 212 EOF | 208 EOF |
| OLD | NEW |