| OLD | NEW |
| 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 21 matching lines...) Expand all Loading... |
| 32 'ShadowDOM.*', | 32 'ShadowDOM.*', |
| 33 'webcomponents.*', | 33 'webcomponents.*', |
| 34 'webcomponents-lite.js', | 34 'webcomponents-lite.js', |
| 35 'unittest*', | 35 'unittest*', |
| 36 '*_buildLogs*', | 36 '*_buildLogs*', |
| 37 '*.log', | 37 '*.log', |
| 38 '*~') | 38 '*~') |
| 39 | 39 |
| 40 usage = """observatory_tool.py [options]""" | 40 usage = """observatory_tool.py [options]""" |
| 41 | 41 |
| 42 def DisplayBootstrapWarning(): |
| 43 print """\ |
| 44 |
| 45 WARNING: Your system cannot run the checked-in Dart SDK. Using the |
| 46 bootstrap Dart executable will make debug builds slow. |
| 47 Please see the Wiki for instructions on replacing the checked-in Dart SDK. |
| 48 |
| 49 https://github.com/dart-lang/sdk/wiki/The-checked-in-SDK-in-tools |
| 50 |
| 51 To use the dart_bootstrap binary please update the PubCommand function |
| 52 in the tools/observatory_tool.py script. |
| 53 |
| 54 """ |
| 55 |
| 56 def DisplayFailureMessage(): |
| 57 print """\ |
| 58 |
| 59 ERROR: Observatory failed to build. What should you do? |
| 60 |
| 61 1. Revert to a working revision of the Dart VM |
| 62 2. Contact zra@, johnmccutchan@, dart-vm-team@ |
| 63 3. File a bug: https://github.com/dart-lang/sdk/issues/new |
| 64 |
| 65 """ |
| 66 |
| 42 # Run |command|. If its return code is 0, return 0 and swallow its output. | 67 # Run |command|. If its return code is 0, return 0 and swallow its output. |
| 43 # If its return code is non-zero, emit its output unless |always_silent| is | 68 # If its return code is non-zero, emit its output unless |always_silent| is |
| 44 # True, and return the return code. | 69 # True, and return the return code. |
| 45 def RunCommand(command, always_silent=False): | 70 def RunCommand(command, always_silent=False): |
| 46 try: | 71 try: |
| 47 # Dart IO respects the following environment variables to configure the | 72 # Dart IO respects the following environment variables to configure the |
| 48 # HttpClient proxy: https://api.dartlang.org/stable/1.22.1/dart-io/HttpClien
t/findProxyFromEnvironment.html | 73 # HttpClient proxy: https://api.dartlang.org/stable/1.22.1/dart-io/HttpClien
t/findProxyFromEnvironment.html |
| 49 # We strip these to avoid problems with pub build and transformers. | 74 # We strip these to avoid problems with pub build and transformers. |
| 50 no_http_proxy_env = os.environ.copy() | 75 no_http_proxy_env = os.environ.copy() |
| 51 no_http_proxy_env.pop('http_proxy', None) | 76 no_http_proxy_env.pop('http_proxy', None) |
| 52 no_http_proxy_env.pop('HTTP_PROXY', None) | 77 no_http_proxy_env.pop('HTTP_PROXY', None) |
| 53 no_http_proxy_env.pop('https_proxy', None) | 78 no_http_proxy_env.pop('https_proxy', None) |
| 54 no_http_proxy_env.pop('HTTPS_PROXY', None) | 79 no_http_proxy_env.pop('HTTPS_PROXY', None) |
| 55 subprocess.check_output(command, | 80 subprocess.check_output(command, |
| 56 stderr=subprocess.STDOUT, | 81 stderr=subprocess.STDOUT, |
| 57 env=no_http_proxy_env) | 82 env=no_http_proxy_env) |
| 58 return 0 | 83 return 0 |
| 59 except subprocess.CalledProcessError as e: | 84 except subprocess.CalledProcessError as e: |
| 60 if not always_silent: | 85 if not always_silent: |
| 61 print ("Command failed: " + ' '.join(command) + "\n" + | 86 print ("Command failed: " + ' '.join(command) + "\n" + |
| 62 "output: " + e.output) | 87 "output: " + e.output) |
| 88 DisplayFailureMessage() |
| 63 return e.returncode | 89 return e.returncode |
| 64 | 90 |
| 65 def CreateTimestampFile(options): | 91 def CreateTimestampFile(options): |
| 66 if options.stamp != '': | 92 if options.stamp != '': |
| 67 dir_name = os.path.dirname(options.stamp) | 93 dir_name = os.path.dirname(options.stamp) |
| 68 if dir_name != '': | 94 if dir_name != '': |
| 69 if not os.path.exists(dir_name): | 95 if not os.path.exists(dir_name): |
| 70 os.mkdir(dir_name) | 96 os.mkdir(dir_name) |
| 71 open(options.stamp, 'w').close() | 97 open(options.stamp, 'w').close() |
| 72 | 98 |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 131 except OSError as e: | 157 except OSError as e: |
| 132 pass | 158 pass |
| 133 options.pub_snapshot = None | 159 options.pub_snapshot = None |
| 134 | 160 |
| 135 # We need a dart executable. | 161 # We need a dart executable. |
| 136 return (options.dart_executable is not None) | 162 return (options.dart_executable is not None) |
| 137 | 163 |
| 138 def ChangeDirectory(directory): | 164 def ChangeDirectory(directory): |
| 139 os.chdir(directory); | 165 os.chdir(directory); |
| 140 | 166 |
| 141 def DisplayBootstrapWarning(): | |
| 142 print """\ | |
| 143 | |
| 144 | |
| 145 WARNING: Your system cannot run the checked-in Dart SDK. Using the | |
| 146 bootstrap Dart executable will make debug builds slow. | |
| 147 Please see the Wiki for instructions on replacing the checked-in Dart SDK. | |
| 148 | |
| 149 https://github.com/dart-lang/sdk/wiki/The-checked-in-SDK-in-tools | |
| 150 | |
| 151 To use the dart_bootstrap binary please update the PubCommand function | |
| 152 in the tools/observatory_tool.py script. | |
| 153 | |
| 154 """ | |
| 155 | |
| 156 def PubCommand(dart_executable, | 167 def PubCommand(dart_executable, |
| 157 pub_executable, | 168 pub_executable, |
| 158 pub_snapshot, | 169 pub_snapshot, |
| 159 command, | 170 command, |
| 160 silent): | 171 silent): |
| 161 if pub_executable is not None: | 172 if pub_executable is not None: |
| 162 executable = [pub_executable] | 173 executable = [pub_executable] |
| 163 elif pub_snapshot is not None: | 174 elif pub_snapshot is not None: |
| 164 executable = [utils.CheckedInSdkExecutable(), pub_snapshot] | 175 executable = [utils.CheckedInSdkExecutable(), pub_snapshot] |
| 165 else: | 176 else: |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 235 if (options.dart_executable != None): | 246 if (options.dart_executable != None): |
| 236 options.dart_executable = os.path.abspath(options.dart_executable) | 247 options.dart_executable = os.path.abspath(options.dart_executable) |
| 237 if (options.pub_executable != None): | 248 if (options.pub_executable != None): |
| 238 options.pub_executable = os.path.abspath(options.pub_executable) | 249 options.pub_executable = os.path.abspath(options.pub_executable) |
| 239 if (options.pub_snapshot != None): | 250 if (options.pub_snapshot != None): |
| 240 options.pub_snapshot = os.path.abspath(options.pub_snapshot) | 251 options.pub_snapshot = os.path.abspath(options.pub_snapshot) |
| 241 if (options.stamp != ''): | 252 if (options.stamp != ''): |
| 242 options.stamp = os.path.abspath(options.stamp) | 253 options.stamp = os.path.abspath(options.stamp) |
| 243 if len(args) == 1: | 254 if len(args) == 1: |
| 244 args[0] = os.path.abspath(args[0]) | 255 args[0] = os.path.abspath(args[0]) |
| 245 # Pub must be run from the project's root directory. | 256 try: |
| 246 ChangeDirectory(options.directory) | 257 # Pub must be run from the project's root directory. |
| 247 result = ExecuteCommand(options, args) | 258 ChangeDirectory(options.directory) |
| 248 if result == 0: | 259 result = ExecuteCommand(options, args) |
| 249 CreateTimestampFile(options) | 260 if result == 0: |
| 250 return result | 261 CreateTimestampFile(options) |
| 262 return result |
| 263 except: |
| 264 DisplayFailureMessage() |
| 251 | 265 |
| 252 | 266 |
| 253 if __name__ == '__main__': | 267 if __name__ == '__main__': |
| 254 sys.exit(main()); | 268 sys.exit(main()); |
| OLD | NEW |