Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(54)

Side by Side Diff: testing_support/gerrit-init.sh

Issue 19406002: Utility for bootstrapping a local gerrit instance. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/depot_tools
Patch Set: Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 #!/bin/bash
2
cmp 2013/07/16 21:54:22 remove this empty line
szager1 2013/07/16 22:23:31 Done.
3 # Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
4 # Use of this source code is governed by a BSD-style license that can be
5 # found in the LICENSE file.
6
7 if [ -n "$1" ]; then
8 rundir="$1"
9 else
10 rundir="$(mktemp -d)"
11 fi
12
13 account_id=101
14 full_name='Test Account'
15 maximum_page_size='25'
16 password='test-password'
17 username='test-username'
18 preferred_email="${username}@test.org"
19 registered_on=$(date '+%Y-%m-%d %H:%M:%S.000%:::z')
cmp 2013/07/16 21:54:22 alphabetically order lines 13-19
szager1 2013/07/16 22:23:31 Done.
20
21 root=$(dirname "$0")
cmp 2013/07/16 21:54:22 this variable is not used, delete it?
szager1 2013/07/16 22:23:31 Done.
22
23 url='https://www.googleapis.com/storage/v1beta2/b/gerrit-releases/o?projection=n oAcl'
cmp 2013/07/16 21:54:22 before line 23, insert a comment that says somethi
szager1 2013/07/16 22:23:31 Done.
24 curl -s $url | python <(cat <<EOF
cmp 2013/07/16 21:54:22 can you add some flags here that cause curl to be
szager1 2013/07/16 22:23:31 Added --ssl-reqd. Is there something else you had
cmp 2013/07/16 22:34:18 Good enough for me for now. I assume that all of
25 import json
cmp 2013/07/16 21:54:22 before line 25, insert a comment that says "Take a
szager1 2013/07/16 22:23:31 Done.
26 import re
27 import sys
28
29 gerrit_re = re.compile('gerrit(?:-full)?-([0-9.]+(?:-rc[0-9]+)?)[.]war')
30 j = json.load(sys.stdin)
31 items = [(x, gerrit_re.match(x['name'])) for x in j['items']]
32 items = [(x, m.group(1)) for x, m in items if m]
33 def _cmp(a, b):
34 an = a[1].replace('-rc', '.rc').split('.')
35 bn = b[1].replace('-rc', '.rc').split('.')
36 while len(an) < len(bn):
37 an.append('0')
38 while len(bn) < len(an):
39 bn.append('0')
40 for i in range(len(an)):
41 ai = int(an[i][2:]) if 'rc' in an[i] else 1000 + int(an[i])
42 bi = int(bn[i][2:]) if 'rc' in bn[i] else 1000 + int(bn[i])
43 if ai != bi:
44 return -1 if ai > bi else 1
45 return 0
46 items.sort(cmp=_cmp)
47 for x in items:
48 if 'rc' not in x[0]['name']:
49 print '"%s" "%s"' % (x[0]['name'], x[0]['md5Hash'])
50 sys.exit(0)
51 EOF
52 ) | xargs | while read name md5; do
53 net_sum=$(echo -n $md5 | base64 -d | od -tx1 | head -1 | cut -d ' ' -f 2- | se d 's/ //g')
cmp 2013/07/16 21:54:22 wrap to be less than 80 chars
szager1 2013/07/16 22:23:31 Done.
54 if [ -f "./$name" ]; then
55 file_sum=$(md5sum "./$name" | awk '{print $1}' | xargs)
56 if [ "$file_sum" = "$net_sum" ]; then
57 ln -sf "./$name" gerrit.war
58 break
59 else
60 rm -rf "./$name"
61 fi
62 fi
63 curl -s -o "./$name" "https://gerrit-releases.storage.googleapis.com/$name"
64 file_sum=$(md5sum "./$name" | awk '{print $1}' | xargs)
65 if [ "$file_sum" != "$net_sum" ]; then
66 echo "ERROR: md5sum mismatch when downloading $name" 1>&2
67 rm -rf "./$name"
68 exit 1
69 else
70 ln -sf "./$name" gerrit.war
71 fi
72 done
73
74 if [ ! -e "./gerrit.war" ]; then
75 echo "ERROR: No gerrit.war file or link present, and unable " 1>&2
76 echo " to download the latest version." 1>&2
77 exit 1
78 fi
79
80 mkdir -p "${rundir}/etc"
81 cat <<EOF > "${rundir}/etc/gerrit.config"
82 [auth]
83 type = http
84 gitBasicAuth = true
85 EOF
86 java -jar "./gerrit.war" init --no-auto-start --batch -d "${rundir}"
87
88 cat <<EOF | java -jar "./gerrit.war" gsql -d "${rundir}" > /dev/null
89 INSERT INTO ACCOUNTS (FULL_NAME, MAXIMUM_PAGE_SIZE, PREFERRED_EMAIL, REGISTERED_ ON, ACCOUNT_ID) VALUES ('${full_name}', ${maximum_page_size}, '${preferred_email }', '${registered_on}', ${account_id});
90 INSERT INTO ACCOUNT_EXTERNAL_IDS (ACCOUNT_ID, EXTERNAL_ID) VALUES (${account_id} , 'gerrit:${username}');
91 INSERT INTO ACCOUNT_EXTERNAL_IDS (ACCOUNT_ID, EXTERNAL_ID) VALUES (${account_id} , 'username:${username}');
92 INSERT INTO ACCOUNT_EXTERNAL_IDS (ACCOUNT_ID, EMAIL_ADDRESS, PASSWORD) VALUES ($ {account_id}, '${preferred_email}', '${password}');
93 INSERT INTO ACCOUNT_GROUP_MEMBERS (ACCOUNT_ID, GROUP_ID) VALUES (${account_id}, 1);
94 EOF
95
96 mkdir -p "${rundir}/tmp"
97 cat <<EOF > "${rundir}/tmp/.netrc"
98 machine localhost login ${username} password ${password}
99 EOF
100
101 echo
102 echo "To start gerrit server:"
103 echo " ${rundir}/bin/gerrit.sh start"
104 echo
105 echo "To use the REST API:"
106 echo " curl --netrc-file ${rundir}/tmp/.netrc http://localhost:8080/<endpoint>"
107 echo
108 echo "To stop the server:"
109 echo " ${rundir}/bin/gerrit.sh stop"
110 echo
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698