| #!/usr/bin/env python3 | |
| # Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file | |
| # for details. All rights reserved. Use of this source code is governed by a | |
| # BSD-style license that can be found in the LICENSE file. | |
| import optparse | |
| import os | |
| import subprocess | |
| import sys | |
| import shutil | |
| import tempfile | |
| PUBSPEC = """name: pub_integration_test | |
| environment: | |
| sdk: '^2.19.0' | |
| dependencies: | |
| shelf: | |
| test: | |
| """ | |
| def Main(): | |
| parser = optparse.OptionParser() | |
| parser.add_option( | |
| '--mode', action='store', dest='mode', type='string', default='release') | |
| parser.add_option('--arch', | |
| action='store', | |
| dest='arch', | |
| type='string', | |
| default='x64') | |
| (options, args) = parser.parse_args() | |
| arch = 'ARM64' if options.arch == 'arm64' else 'X64' | |
| mode = ('Debug' if options.mode == 'debug' else 'Release') | |
| out_dir = 'xcodebuild' if sys.platform == 'darwin' else 'out' | |
| extension = '' if not sys.platform == 'win32' else '.exe' | |
| dart = os.path.abspath('%s/%s%s/dart-sdk/bin/dart%s' % | |
| (out_dir, mode, arch, extension)) | |
| print(dart) | |
| working_dir = tempfile.mkdtemp() | |
| try: | |
| pub_cache_dir = working_dir + '/pub_cache' | |
| env = os.environ.copy() | |
| env['PUB_CACHE'] = pub_cache_dir | |
| with open(working_dir + '/pubspec.yaml', 'w') as pubspec_yaml: | |
| pubspec_yaml.write(PUBSPEC) | |
| exit_code = subprocess.call([dart, 'pub', 'get'], | |
| cwd=working_dir, | |
| env=env) | |
| if exit_code != 0: | |
| return exit_code | |
| exit_code = subprocess.call([dart, 'pub', 'upgrade'], | |
| cwd=working_dir, | |
| env=env) | |
| if exit_code != 0: | |
| return exit_code | |
| finally: | |
| shutil.rmtree(working_dir) | |
| if __name__ == '__main__': | |
| sys.exit(Main()) |