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

Side by Side Diff: tools/observatory_tool.py

Issue 1519063004: - Prevent running of the dart_bootstrap script by default. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years 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 | « tools/canary.dart ('k') | tools/utils.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 # Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file 2 # Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
3 # for details. All rights reserved. Use of this source code is governed by a 3 # for details. All rights reserved. Use of this source code is governed by a
4 # BSD-style license that can be found in the LICENSE file. 4 # BSD-style license that can be found in the LICENSE file.
5 """Helper for building and deploying Observatory""" 5 """Helper for building and deploying Observatory"""
6 6
7 import argparse 7 import argparse
8 import os 8 import os
9 import platform 9 import platform
10 import shutil 10 import shutil
(...skipping 18 matching lines...) Expand all
29 29
30 usage = """observatory_tool.py [options]""" 30 usage = """observatory_tool.py [options]"""
31 31
32 def BuildArguments(): 32 def BuildArguments():
33 result = argparse.ArgumentParser(usage=usage) 33 result = argparse.ArgumentParser(usage=usage)
34 result.add_argument("--package-root", help="package root", default=None) 34 result.add_argument("--package-root", help="package root", default=None)
35 result.add_argument("--dart-executable", help="dart executable", default=None) 35 result.add_argument("--dart-executable", help="dart executable", default=None)
36 result.add_argument("--pub-executable", help="pub executable", default=None) 36 result.add_argument("--pub-executable", help="pub executable", default=None)
37 result.add_argument("--directory", help="observatory root", default=None) 37 result.add_argument("--directory", help="observatory root", default=None)
38 result.add_argument("--command", help="[get, build, deploy]", default=None) 38 result.add_argument("--command", help="[get, build, deploy]", default=None)
39 result.add_argument("--silent", help="silence all output", default=False) 39 result.add_argument("--silent", help="silence all output", default=None)
40 result.add_argument("--sdk", help="Use prebuilt sdk", default=False) 40 result.add_argument("--sdk", help="Use prebuilt sdk", default=None)
41 return result 41 return result
42 42
43 def ProcessOptions(options, args): 43 def ProcessOptions(options, args):
44 # Fix broken boolean parsing in argparse, where False ends up being True.
45 if (options.silent is not None) and (options.silent == "True"):
46 options.silent = True
47 elif (options.silent is None) or (options.silent == "False"):
48 options.silent = False
49 else:
50 print "--silent expects 'True' or 'False' argument."
51 return False
52
53 if (options.sdk is not None) and (options.sdk == "True"):
54 options.sdk = True
55 elif (options.sdk is None) or (options.sdk == "False"):
56 options.sdk = False
57 else:
58 print "--sdk expects 'True' or 'False' argument."
59 return False
60
44 with open(os.devnull, 'wb') as silent_sink: 61 with open(os.devnull, 'wb') as silent_sink:
45 # Required options. 62 # Required options.
46 if options.command is None or options.directory is None: 63 if options.command is None or options.directory is None:
47 return False 64 return False
48 65
49 # Set a default value for pub_snapshot. 66 # Set a default value for pub_snapshot.
50 options.pub_snapshot = None 67 options.pub_snapshot = None
51 68
52 # If we have a working pub executable, try and use that. 69 # If we have a working pub executable, try and use that.
53 # TODO(whesse): Drop the pub-executable option if it isn't used. 70 # TODO(whesse): Drop the pub-executable option if it isn't used.
54 if options.pub_executable is not None: 71 if options.pub_executable is not None:
55 try: 72 try:
56 if 0 == subprocess.call([options.pub_executable, '--version'], 73 if 0 == subprocess.call([options.pub_executable, '--version'],
57 stdout=silent_sink, 74 stdout=silent_sink,
58 stderr=silent_sink): 75 stderr=silent_sink):
59 return True 76 return True
60 except OSError as e: 77 except OSError as e:
61 pass 78 pass
62 options.pub_executable = None 79 options.pub_executable = None
63 80
64 if options.sdk is not None and utils.CheckedInSdkCheckExecutable(): 81 if options.sdk and utils.CheckedInSdkCheckExecutable():
65 # Use the checked in pub executable. 82 # Use the checked in pub executable.
66 options.pub_snapshot = os.path.join(utils.CheckedInSdkPath(), 83 options.pub_snapshot = os.path.join(utils.CheckedInSdkPath(),
67 'bin', 84 'bin',
68 'snapshots', 85 'snapshots',
69 'pub.dart.snapshot'); 86 'pub.dart.snapshot');
70 try: 87 try:
71 if 0 == subprocess.call([utils.CheckedInSdkExecutable(), 88 if 0 == subprocess.call([utils.CheckedInSdkExecutable(),
72 options.pub_snapshot, 89 options.pub_snapshot,
73 '--version'], 90 '--version'],
74 stdout=silent_sink, 91 stdout=silent_sink,
(...skipping 11 matching lines...) Expand all
86 os.chdir(directory); 103 os.chdir(directory);
87 104
88 def DisplayBootstrapWarning(): 105 def DisplayBootstrapWarning():
89 print """\ 106 print """\
90 107
91 108
92 WARNING: Your system cannot run the checked-in Dart SDK. Using the 109 WARNING: Your system cannot run the checked-in Dart SDK. Using the
93 bootstrap Dart executable will make debug builds slow. 110 bootstrap Dart executable will make debug builds slow.
94 Please see the Wiki for instructions on replacing the checked-in Dart SDK. 111 Please see the Wiki for instructions on replacing the checked-in Dart SDK.
95 112
96 https://github.com/dart-lang/sdk/wiki/The-checked-in-SDK-in--tools 113 https://github.com/dart-lang/sdk/wiki/The-checked-in-SDK-in-tools
114
115 To use the dart_bootstrap binary please update the PubCommand function
116 in the tools/observatory_tool.py script.
97 117
98 """ 118 """
99 119
100 def PubCommand(dart_executable, 120 def PubCommand(dart_executable,
101 pub_executable, 121 pub_executable,
102 pub_snapshot, 122 pub_snapshot,
103 pkg_root, 123 pkg_root,
104 command, 124 command,
105 silent): 125 silent):
106 with open(os.devnull, 'wb') as silent_sink: 126 with open(os.devnull, 'wb') as silent_sink:
107 if pub_executable is not None: 127 if pub_executable is not None:
108 executable = [pub_executable] 128 executable = [pub_executable]
109 elif pub_snapshot is not None: 129 elif pub_snapshot is not None:
110 executable = [utils.CheckedInSdkExecutable(), pub_snapshot] 130 executable = [utils.CheckedInSdkExecutable(), pub_snapshot]
111 else: 131 else:
112 DisplayBootstrapWarning() 132 DisplayBootstrapWarning()
113 executable = [dart_executable, '--package-root=' + pkg_root, PUB_PATH] 133 executable = [dart_executable, '--package-root=' + pkg_root, PUB_PATH]
134 # Prevent the bootstrap Dart executable from running in regular
135 # development flow.
136 # REMOVE THE FOLLOWING LINE TO USE the dart_bootstrap binary.
137 return False
114 return subprocess.call(executable + command, 138 return subprocess.call(executable + command,
115 stdout=silent_sink if silent else None, 139 stdout=silent_sink if silent else None,
116 stderr=silent_sink if silent else None) 140 stderr=silent_sink if silent else None)
117 141
118 def Deploy(input_dir, output_dir): 142 def Deploy(input_dir, output_dir):
119 shutil.rmtree(output_dir) 143 shutil.rmtree(output_dir)
120 shutil.copytree(input_dir, output_dir, ignore=IGNORE_PATTERNS) 144 shutil.copytree(input_dir, output_dir, ignore=IGNORE_PATTERNS)
121 index_file = os.path.join(output_dir, 'web', 'index.html') 145 index_file = os.path.join(output_dir, 'web', 'index.html')
122 os.utime(index_file, None) 146 os.utime(index_file, None)
123 return 0 147 return 0
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
177 if (options.pub_snapshot != None): 201 if (options.pub_snapshot != None):
178 options.pub_snapshot = os.path.abspath(options.pub_snapshot) 202 options.pub_snapshot = os.path.abspath(options.pub_snapshot)
179 if len(args) == 1: 203 if len(args) == 1:
180 args[0] = os.path.abspath(args[0]) 204 args[0] = os.path.abspath(args[0])
181 # Pub must be run from the project's root directory. 205 # Pub must be run from the project's root directory.
182 ChangeDirectory(options.directory) 206 ChangeDirectory(options.directory)
183 return ExecuteCommand(options, args) 207 return ExecuteCommand(options, args)
184 208
185 if __name__ == '__main__': 209 if __name__ == '__main__':
186 sys.exit(main()); 210 sys.exit(main());
OLDNEW
« no previous file with comments | « tools/canary.dart ('k') | tools/utils.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698