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

Side by Side Diff: tools/create_sdk.py

Issue 350483003: Build Tools Cleanup (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: more fixes as reviewed by ricow Created 6 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 | « tools/create_editor.py ('k') | tools/create_tarball.py » ('j') | 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 # 2 #
3 # Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 3 # Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
4 # for details. All rights reserved. Use of this source code is governed by a 4 # for details. All rights reserved. Use of this source code is governed by a
5 # BSD-style license that can be found in the LICENSE file. 5 # BSD-style license that can be found in the LICENSE file.
6 # 6 #
7 # A script which will be invoked from gyp to create an SDK. 7 # A script which will be invoked from gyp to create an SDK.
8 # 8 #
9 # Usage: create_sdk.py sdk_directory 9 # Usage: create_sdk.py sdk_directory
10 # 10 #
11 # The SDK will be used either from the command-line or from the editor. 11 # The SDK will be used either from the command-line or from the editor.
12 # Top structure is 12 # Top structure is
13 # 13 #
(...skipping 27 matching lines...) Expand all
41 # ......io/ 41 # ......io/
42 # ......isolate/ 42 # ......isolate/
43 # ......js/ 43 # ......js/
44 # ......math/ 44 # ......math/
45 # ......mirrors/ 45 # ......mirrors/
46 # ......typed_data/ 46 # ......typed_data/
47 # ....util/ 47 # ....util/
48 # ......(more will come here) 48 # ......(more will come here)
49 49
50 50
51 import glob
52 import optparse 51 import optparse
53 import os 52 import os
54 import re 53 import re
55 import sys 54 import sys
56 import subprocess 55 import subprocess
57 import tempfile 56
58 import utils 57 import utils
59 58
59
60 HOST_OS = utils.GuessOS() 60 HOST_OS = utils.GuessOS()
61 61
62 # TODO(dgrove): Only import modules following Google style guide. 62 # TODO(dgrove): Only import modules following Google style guide.
63 from os.path import basename, dirname, join, realpath, exists, isdir 63 from os.path import basename, dirname, join, realpath, exists
64 64
65 # TODO(dgrove): Only import modules following Google style guide. 65 # TODO(dgrove): Only import modules following Google style guide.
66 from shutil import copyfile, copymode, copytree, ignore_patterns, rmtree, move 66 from shutil import copyfile, copymode, copytree, ignore_patterns, rmtree, move
67 67
68 68
69 def GetOptions(): 69 def GetOptions():
70 options = optparse.OptionParser(usage='usage: %prog [options]') 70 options = optparse.OptionParser(usage='usage: %prog [options]')
71 options.add_option("--sdk_output_dir", 71 options.add_option("--sdk_output_dir",
72 help='Where to output the sdk') 72 help='Where to output the sdk')
73 options.add_option("--snapshot_location", 73 options.add_option("--snapshot_location",
74 help='Location of the snapshots.') 74 help='Location of the snapshots.')
75 return options.parse_args() 75 return options.parse_args()
76 76
77 77
78 def ReplaceInFiles(paths, subs): 78 def ReplaceInFiles(paths, subs):
79 '''Reads a series of files, applies a series of substitutions to each, and 79 """Reads a series of files, applies a series of substitutions to each, and
80 saves them back out. subs should by a list of (pattern, replace) tuples.''' 80 saves them back out. subs should by a list of (pattern, replace) tuples."""
81 for path in paths: 81 for path in paths:
82 contents = open(path).read() 82 contents = open(path).read()
83 for pattern, replace in subs: 83 for pattern, replace in subs:
84 contents = re.sub(pattern, replace, contents) 84 contents = re.sub(pattern, replace, contents)
85 85
86 dest = open(path, 'w') 86 dest = open(path, 'w')
87 dest.write(contents) 87 dest.write(contents)
88 dest.close() 88 dest.close()
89 89
90 90
91 def Copy(src, dest): 91 def Copy(src, dest):
92 copyfile(src, dest) 92 copyfile(src, dest)
93 copymode(src, dest) 93 copymode(src, dest)
94 94
95 95
96 def CopyShellScript(src_file, dest_dir): 96 def CopyShellScript(src_file, dest_dir):
97 '''Copies a shell/batch script to the given destination directory. Handles 97 """Copies a shell/batch script to the given destination directory. Handles
98 using the appropriate platform-specific file extension.''' 98 using the appropriate platform-specific file extension."""
99 file_extension = '' 99 file_extension = ''
100 if HOST_OS == 'win32': 100 if HOST_OS == 'win32':
101 file_extension = '.bat' 101 file_extension = '.bat'
102 102
103 src = src_file + file_extension 103 src = src_file + file_extension
104 dest = join(dest_dir, basename(src_file) + file_extension) 104 dest = join(dest_dir, basename(src_file) + file_extension)
105 Copy(src, dest) 105 Copy(src, dest)
106 106
107 107
108 def CopyDartScripts(home, sdk_root): 108 def CopyDartScripts(home, sdk_root):
109 for executable in ['dart2js', 'dartanalyzer', 'dartfmt', 'docgen', 'pub']: 109 for executable in ['dart2js', 'dartanalyzer', 'dartfmt', 'docgen', 'pub']:
110 CopyShellScript(os.path.join(home, 'sdk', 'bin', executable), 110 CopyShellScript(os.path.join(home, 'sdk', 'bin', executable),
111 os.path.join(sdk_root, 'bin')) 111 os.path.join(sdk_root, 'bin'))
112 112
113 113
114 def CopySnapshots(snapshots, sdk_root): 114 def CopySnapshots(snapshots, sdk_root):
115 for snapshot in ['dart2js', 'dartanalyzer', 'dartfmt', 'utils_wrapper', 115 for snapshot in ['dart2js', 'dartanalyzer', 'dartfmt', 'utils_wrapper',
116 'pub']: 116 'pub']:
117 snapshot += '.dart.snapshot' 117 snapshot += '.dart.snapshot'
118 copyfile(join(snapshots, snapshot), 118 copyfile(join(snapshots, snapshot),
119 join(sdk_root, 'bin', 'snapshots', snapshot)) 119 join(sdk_root, 'bin', 'snapshots', snapshot))
120 120
121 121
122 def Main(argv): 122 def Main():
123 # Pull in all of the gypi files which will be munged into the sdk. 123 # Pull in all of the gypi files which will be munged into the sdk.
124 HOME = dirname(dirname(realpath(__file__))) 124 HOME = dirname(dirname(realpath(__file__)))
125 125
126 (options, args) = GetOptions() 126 (options, args) = GetOptions()
127 127
128 SDK = options.sdk_output_dir 128 SDK = options.sdk_output_dir
129 SDK_tmp = '%s.tmp' % SDK 129 SDK_tmp = '%s.tmp' % SDK
130 130
131 SNAPSHOT = options.snapshot_location 131 SNAPSHOT = options.snapshot_location
132 132
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
248 if revision is not None: 248 if revision is not None:
249 with open(os.path.join(SDK_tmp, 'revision'), 'w') as f: 249 with open(os.path.join(SDK_tmp, 'revision'), 'w') as f:
250 f.write(revision + '\n') 250 f.write(revision + '\n')
251 f.close() 251 f.close()
252 252
253 Copy(join(HOME, 'README.dart-sdk'), join(SDK_tmp, 'README')) 253 Copy(join(HOME, 'README.dart-sdk'), join(SDK_tmp, 'README'))
254 254
255 move(SDK_tmp, SDK) 255 move(SDK_tmp, SDK)
256 256
257 if __name__ == '__main__': 257 if __name__ == '__main__':
258 sys.exit(Main(sys.argv)) 258 sys.exit(Main())
OLDNEW
« no previous file with comments | « tools/create_editor.py ('k') | tools/create_tarball.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698