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

Side by Side Diff: go/bootstrap.py

Issue 1134303002: Fix go bootstrap on Windows. (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: Created 5 years, 7 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
« 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
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright 2014 The Chromium Authors. All rights reserved. 2 # Copyright 2014 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 """Prepares a local hermetic Go installation. 6 """Prepares a local hermetic Go installation.
7 7
8 - Downloads and unpacks the Go toolset in ../../golang. 8 - Downloads and unpacks the Go toolset in ../../golang.
9 - Downloads and installs goop and golint. 9 - Downloads and installs goop and golint.
10 - Fetches code dependencies via goop. 10 - Fetches code dependencies via goop.
(...skipping 27 matching lines...) Expand all
38 38
39 # Where Go GAE SDK is supposedly installed. 39 # Where Go GAE SDK is supposedly installed.
40 GO_APPENGINE = os.path.join(os.path.dirname(ROOT), 'go_appengine') 40 GO_APPENGINE = os.path.join(os.path.dirname(ROOT), 'go_appengine')
41 41
42 # Default workspace with infra go code. 42 # Default workspace with infra go code.
43 WORKSPACE = os.path.join(ROOT, 'go') 43 WORKSPACE = os.path.join(ROOT, 'go')
44 44
45 # Platform depended suffix for executable files. 45 # Platform depended suffix for executable files.
46 EXE_SFX = '.exe' if sys.platform == 'win32' else '' 46 EXE_SFX = '.exe' if sys.platform == 'win32' else ''
47 47
48 # On Windows we use git from depot_tools.
49 GIT_EXE = 'git.bat' if sys.platform == 'win32' else 'git'
50
48 # Pinned version of Go toolset to download. 51 # Pinned version of Go toolset to download.
49 TOOLSET_VERSION = 'go1.4' 52 TOOLSET_VERSION = 'go1.4'
50 53
51 # Platform dependent portion of a download URL. See http://golang.org/dl/. 54 # Platform dependent portion of a download URL. See http://golang.org/dl/.
52 TOOLSET_VARIANTS = { 55 TOOLSET_VARIANTS = {
53 ('darwin', 'x86-32'): 'darwin-386-osx10.8.tar.gz', 56 ('darwin', 'x86-32'): 'darwin-386-osx10.8.tar.gz',
54 ('darwin', 'x86-64'): 'darwin-amd64-osx10.8.tar.gz', 57 ('darwin', 'x86-64'): 'darwin-amd64-osx10.8.tar.gz',
55 ('linux2', 'x86-32'): 'linux-386.tar.gz', 58 ('linux2', 'x86-32'): 'linux-386.tar.gz',
56 ('linux2', 'x86-64'): 'linux-amd64.tar.gz', 59 ('linux2', 'x86-64'): 'linux-amd64.tar.gz',
57 ('win32', 'x86-32'): 'windows-386.zip', 60 ('win32', 'x86-32'): 'windows-386.zip',
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after
266 LOGGER.info('Copying %s -> %s', sdk_dir, tool_dir) 269 LOGGER.info('Copying %s -> %s', sdk_dir, tool_dir)
267 shutil.copytree(sdk_dir, tool_dir) 270 shutil.copytree(sdk_dir, tool_dir)
268 271
269 for pkg in GAE_HACK_PKGS: 272 for pkg in GAE_HACK_PKGS:
270 shutil.rmtree(os.path.join(base_tool_dir, pkg)) 273 shutil.rmtree(os.path.join(base_tool_dir, pkg))
271 274
272 patches = [os.path.join(WORKSPACE, 'patches', p) 275 patches = [os.path.join(WORKSPACE, 'patches', p)
273 for p in os.listdir(os.path.join(WORKSPACE, 'patches')) 276 for p in os.listdir(os.path.join(WORKSPACE, 'patches'))
274 if p.endswith('.patch')] 277 if p.endswith('.patch')]
275 for patch in patches: 278 for patch in patches:
276 subprocess.check_call(['git', 'apply'], cwd=toolset_root, 279 subprocess.check_call([GIT_EXE, 'apply'], cwd=toolset_root,
277 stdin=open(patch), stdout=sys.stderr) 280 stdin=open(patch), stdout=sys.stderr)
278 281
279 to_build = [] 282 to_build = []
280 for d in GAE_PKGS: 283 for d in GAE_PKGS:
281 to_build.extend(discover_targets(base_tool_dir, d)) 284 to_build.extend(discover_targets(base_tool_dir, d))
282 285
283 LOGGER.info('Building %d Appengine libs', len(to_build)) 286 LOGGER.info('Building %d Appengine libs', len(to_build))
284 subprocess.check_call( 287 subprocess.check_call(
285 [get_go_exe(toolset_root), 'build'] + to_build, 288 [get_go_exe(toolset_root), 'build'] + to_build,
286 env=get_go_environ(toolset_root)) 289 env=get_go_environ(toolset_root))
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
347 fetch_tools_code(tmp, TOOLS_SOURCE) 350 fetch_tools_code(tmp, TOOLS_SOURCE)
348 install(tmp, 'github.com/nitrous-io/goop') 351 install(tmp, 'github.com/nitrous-io/goop')
349 install(tmp, 'github.com/golang/lint/golint') 352 install(tmp, 'github.com/golang/lint/golint')
350 353
351 LOGGER.info('tools are installed') 354 LOGGER.info('tools are installed')
352 write_file([toolset_root, 'INSTALLED_TOOLS'], available_tools) 355 write_file([toolset_root, 'INSTALLED_TOOLS'], available_tools)
353 356
354 357
355 def fetch_tools_code(workspace, spec): 358 def fetch_tools_code(workspace, spec):
356 """Fetches goop and golint source code with dependencies.""" 359 """Fetches goop and golint source code with dependencies."""
357 git_exe = 'git.bat' if sys.platform == 'win32' else 'git'
358 def git(cmd, cwd): 360 def git(cmd, cwd):
359 subprocess.check_call([git_exe] + cmd, cwd=cwd, stdout=sys.stderr) 361 subprocess.check_call([GIT_EXE] + cmd, cwd=cwd, stdout=sys.stderr)
360 for path, repo in sorted(spec.iteritems()): 362 for path, repo in sorted(spec.iteritems()):
361 path = os.path.join(workspace, path.replace('/', os.sep)) 363 path = os.path.join(workspace, path.replace('/', os.sep))
362 os.makedirs(path) 364 os.makedirs(path)
363 git(['init', '.'], cwd=path) 365 git(['init', '.'], cwd=path)
364 git(['fetch', repo['url'], repo['ref']], cwd=path) 366 git(['fetch', repo['url'], repo['ref']], cwd=path)
365 git(['checkout', repo['rev']], cwd=path) 367 git(['checkout', repo['rev']], cwd=path)
366 368
367 369
368 def update_vendor_packages(toolset_root, workspace, force=False): 370 def update_vendor_packages(toolset_root, workspace, force=False):
369 """Runs goop to update external pinned packages.""" 371 """Runs goop to update external pinned packages."""
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
525 def main(args): 527 def main(args):
526 if args: 528 if args:
527 print >> sys.stderr, sys.modules[__name__].__doc__, 529 print >> sys.stderr, sys.modules[__name__].__doc__,
528 return 2 530 return 2
529 bootstrap([WORKSPACE], logging.DEBUG) 531 bootstrap([WORKSPACE], logging.DEBUG)
530 return 0 532 return 0
531 533
532 534
533 if __name__ == '__main__': 535 if __name__ == '__main__':
534 sys.exit(main(sys.argv[1:])) 536 sys.exit(main(sys.argv[1:]))
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