OLD | NEW |
1 #!/bin/sh | 1 #!/bin/sh |
2 | 2 |
3 ## repo default configuration | 3 ## repo default configuration |
4 ## | 4 ## |
5 REPO_URL='https://git.chromium.org/git/external/repo' | 5 REPO_URL='https://git.chromium.org/git/external/repo' |
6 REPO_REV='stable' | 6 REPO_REV='stable' |
7 | 7 |
8 # Copyright (C) 2008 Google Inc. | 8 # Copyright (C) 2008 Google Inc. |
9 # | 9 # |
10 # Licensed under the Apache License, Version 2.0 (the "License"); | 10 # Licensed under the Apache License, Version 2.0 (the "License"); |
(...skipping 10 matching lines...) Expand all Loading... |
21 | 21 |
22 magic='--calling-python-from-/bin/sh--' | 22 magic='--calling-python-from-/bin/sh--' |
23 """exec" python -E "$0" "$@" """#$magic" | 23 """exec" python -E "$0" "$@" """#$magic" |
24 if __name__ == '__main__': | 24 if __name__ == '__main__': |
25 import sys | 25 import sys |
26 if sys.argv[-1] == '#%s' % magic: | 26 if sys.argv[-1] == '#%s' % magic: |
27 del sys.argv[-1] | 27 del sys.argv[-1] |
28 del magic | 28 del magic |
29 | 29 |
30 # increment this whenever we make important changes to this script | 30 # increment this whenever we make important changes to this script |
31 VERSION = (1, 13) | 31 VERSION = (1, 17) |
32 | 32 |
33 # increment this if the MAINTAINER_KEYS block is modified | 33 # increment this if the MAINTAINER_KEYS block is modified |
34 KEYRING_VERSION = (1,0) | 34 KEYRING_VERSION = (1,0) |
35 MAINTAINER_KEYS = """ | 35 MAINTAINER_KEYS = """ |
36 | 36 |
37 Repo Maintainer <repo@android.kernel.org> | 37 Repo Maintainer <repo@android.kernel.org> |
38 -----BEGIN PGP PUBLIC KEY BLOCK----- | 38 -----BEGIN PGP PUBLIC KEY BLOCK----- |
39 Version: GnuPG v1.4.2.2 (GNU/Linux) | 39 Version: GnuPG v1.4.2.2 (GNU/Linux) |
40 | 40 |
41 mQGiBEj3ugERBACrLJh/ZPyVSKeClMuznFIrsQ+hpNnmJGw1a9GXKYKk8qHPhAZf | 41 mQGiBEj3ugERBACrLJh/ZPyVSKeClMuznFIrsQ+hpNnmJGw1a9GXKYKk8qHPhAZf |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
118 help='initial manifest file', metavar='NAME.xml') | 118 help='initial manifest file', metavar='NAME.xml') |
119 group.add_option('--mirror', | 119 group.add_option('--mirror', |
120 dest='mirror', action='store_true', | 120 dest='mirror', action='store_true', |
121 help='mirror the forrest') | 121 help='mirror the forrest') |
122 group.add_option('--reference', | 122 group.add_option('--reference', |
123 dest='reference', | 123 dest='reference', |
124 help='location of mirror directory', metavar='DIR') | 124 help='location of mirror directory', metavar='DIR') |
125 group.add_option('--depth', type='int', default=None, | 125 group.add_option('--depth', type='int', default=None, |
126 dest='depth', | 126 dest='depth', |
127 help='create a shallow clone with given depth; see git clone') | 127 help='create a shallow clone with given depth; see git clone') |
| 128 group.add_option('-g', '--groups', |
| 129 dest='groups', default='default', |
| 130 help='restrict manifest projects to ones with a specified group
', |
| 131 metavar='GROUP') |
| 132 group.add_option('-p', '--platform', |
| 133 dest='platform', default="auto", |
| 134 help='restrict manifest projects to ones with a specified' |
| 135 'platform group [auto|all|none|linux|darwin|...]', |
| 136 metavar='PLATFORM') |
128 | 137 |
129 | 138 |
130 # Tool | 139 # Tool |
131 group = init_optparse.add_option_group('repo Version options') | 140 group = init_optparse.add_option_group('repo Version options') |
132 group.add_option('--repo-url', | 141 group.add_option('--repo-url', |
133 dest='repo_url', | 142 dest='repo_url', |
134 help='repo repository location', metavar='URL') | 143 help='repo repository location', metavar='URL') |
135 group.add_option('--repo-branch', | 144 group.add_option('--repo-branch', |
136 dest='repo_branch', | 145 dest='repo_branch', |
137 help='repo branch or revision', metavar='REVISION') | 146 help='repo branch or revision', metavar='REVISION') |
138 group.add_option('--no-repo-verify', | 147 group.add_option('--no-repo-verify', |
139 dest='no_repo_verify', action='store_true', | 148 dest='no_repo_verify', action='store_true', |
140 help='do not verify repo source code') | 149 help='do not verify repo source code') |
141 | 150 |
| 151 # Other |
| 152 group = init_optparse.add_option_group('Other options') |
| 153 group.add_option('--config-name', |
| 154 dest='config_name', action="store_true", default=False, |
| 155 help='Always prompt for name/e-mail') |
142 | 156 |
143 class CloneFailure(Exception): | 157 class CloneFailure(Exception): |
144 """Indicate the remote clone of repo itself failed. | 158 """Indicate the remote clone of repo itself failed. |
145 """ | 159 """ |
146 | 160 |
147 | 161 |
148 def _Init(args): | 162 def _Init(args): |
149 """Installs repo by cloning it over the network. | 163 """Installs repo by cloning it over the network. |
150 """ | 164 """ |
151 opt, args = init_optparse.parse_args(args) | 165 opt, args = init_optparse.parse_args(args) |
152 if args or not opt.manifest_url: | 166 if args: |
153 init_optparse.print_usage() | 167 init_optparse.print_usage() |
154 sys.exit(1) | 168 sys.exit(1) |
155 | 169 |
156 url = opt.repo_url | 170 url = opt.repo_url |
157 if not url: | 171 if not url: |
158 url = REPO_URL | 172 url = REPO_URL |
159 extra_args.append('--repo-url=%s' % url) | 173 extra_args.append('--repo-url=%s' % url) |
160 | 174 |
161 branch = opt.repo_branch | 175 branch = opt.repo_branch |
162 if not branch: | 176 if not branch: |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
199 _Checkout(dst, branch, rev, opt.quiet) | 213 _Checkout(dst, branch, rev, opt.quiet) |
200 except CloneFailure: | 214 except CloneFailure: |
201 if opt.quiet: | 215 if opt.quiet: |
202 print >>sys.stderr, \ | 216 print >>sys.stderr, \ |
203 'fatal: repo init failed; run without --quiet to see why' | 217 'fatal: repo init failed; run without --quiet to see why' |
204 raise | 218 raise |
205 | 219 |
206 | 220 |
207 def _CheckGitVersion(): | 221 def _CheckGitVersion(): |
208 cmd = [GIT, '--version'] | 222 cmd = [GIT, '--version'] |
209 proc = subprocess.Popen(cmd, stdout=subprocess.PIPE) | 223 try: |
| 224 proc = subprocess.Popen(cmd, stdout=subprocess.PIPE) |
| 225 except OSError, e: |
| 226 print >>sys.stderr |
| 227 print >>sys.stderr, "fatal: '%s' is not available" % GIT |
| 228 print >>sys.stderr, 'fatal: %s' % e |
| 229 print >>sys.stderr |
| 230 print >>sys.stderr, 'Please make sure %s is installed'\ |
| 231 ' and in your path.' % GIT |
| 232 raise CloneFailure() |
| 233 |
210 ver_str = proc.stdout.read().strip() | 234 ver_str = proc.stdout.read().strip() |
211 proc.stdout.close() | 235 proc.stdout.close() |
212 proc.wait() | 236 proc.wait() |
213 | 237 |
214 if not ver_str.startswith('git version '): | 238 if not ver_str.startswith('git version '): |
215 print >>sys.stderr, 'error: "%s" unsupported' % ver_str | 239 print >>sys.stderr, 'error: "%s" unsupported' % ver_str |
216 raise CloneFailure() | 240 raise CloneFailure() |
217 | 241 |
218 ver_str = ver_str[len('git version '):].strip() | 242 ver_str = ver_str[len('git version '):].strip() |
219 ver_act = tuple(map(lambda x: int(x), ver_str.split('.')[0:3])) | 243 ver_act = tuple(map(lambda x: int(x), ver_str.split('.')[0:3])) |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
299 | 323 |
300 def _InitHttp(): | 324 def _InitHttp(): |
301 handlers = [] | 325 handlers = [] |
302 | 326 |
303 mgr = urllib2.HTTPPasswordMgrWithDefaultRealm() | 327 mgr = urllib2.HTTPPasswordMgrWithDefaultRealm() |
304 try: | 328 try: |
305 import netrc | 329 import netrc |
306 n = netrc.netrc() | 330 n = netrc.netrc() |
307 for host in n.hosts: | 331 for host in n.hosts: |
308 p = n.hosts[host] | 332 p = n.hosts[host] |
309 mgr.add_password(None, 'http://%s/' % host, p[0], p[2]) | 333 mgr.add_password(p[1], 'http://%s/' % host, p[0], p[2]) |
310 mgr.add_password(None, 'https://%s/' % host, p[0], p[2]) | 334 mgr.add_password(p[1], 'https://%s/' % host, p[0], p[2]) |
311 except: | 335 except: |
312 pass | 336 pass |
313 handlers.append(urllib2.HTTPBasicAuthHandler(mgr)) | 337 handlers.append(urllib2.HTTPBasicAuthHandler(mgr)) |
| 338 handlers.append(urllib2.HTTPDigestAuthHandler(mgr)) |
314 | 339 |
315 if 'http_proxy' in os.environ: | 340 if 'http_proxy' in os.environ: |
316 url = os.environ['http_proxy'] | 341 url = os.environ['http_proxy'] |
317 handlers.append(urllib2.ProxyHandler({'http': url, 'https': url})) | 342 handlers.append(urllib2.ProxyHandler({'http': url, 'https': url})) |
318 if 'REPO_CURL_VERBOSE' in os.environ: | 343 if 'REPO_CURL_VERBOSE' in os.environ: |
319 handlers.append(urllib2.HTTPHandler(debuglevel=1)) | 344 handlers.append(urllib2.HTTPHandler(debuglevel=1)) |
320 handlers.append(urllib2.HTTPSHandler(debuglevel=1)) | 345 handlers.append(urllib2.HTTPSHandler(debuglevel=1)) |
321 urllib2.install_opener(urllib2.build_opener(*handlers)) | 346 urllib2.install_opener(urllib2.build_opener(*handlers)) |
322 | 347 |
323 def _Fetch(url, local, src, quiet): | 348 def _Fetch(url, local, src, quiet): |
(...skipping 352 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
676 try: | 701 try: |
677 os.execv(main, me) | 702 os.execv(main, me) |
678 except OSError, e: | 703 except OSError, e: |
679 print >>sys.stderr, "fatal: unable to start %s" % main | 704 print >>sys.stderr, "fatal: unable to start %s" % main |
680 print >>sys.stderr, "fatal: %s" % e | 705 print >>sys.stderr, "fatal: %s" % e |
681 sys.exit(148) | 706 sys.exit(148) |
682 | 707 |
683 | 708 |
684 if __name__ == '__main__': | 709 if __name__ == '__main__': |
685 main(sys.argv[1:]) | 710 main(sys.argv[1:]) |
OLD | NEW |