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

Unified Diff: mojo/public/dart/third_party/update_packages.py

Issue 1346773002: Stop running pub get at gclient sync time and fix build bugs (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 3 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 side-by-side diff with in-line comments
Download patch
Index: mojo/public/dart/third_party/update_packages.py
diff --git a/mojo/public/dart/third_party/update_packages.py b/mojo/public/dart/third_party/update_packages.py
new file mode 100755
index 0000000000000000000000000000000000000000..160d2a1fc95d62f8dfc704d399ffdbf340c01057
--- /dev/null
+++ b/mojo/public/dart/third_party/update_packages.py
@@ -0,0 +1,72 @@
+#!/usr/bin/env python
+#
+# Copyright 2015 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+"""Utility for updating third_party packages used in the Mojo Dart SDK"""
+
+import argparse
+import errno
+import json
+import os
+import shutil
+import subprocess
+import sys
+
+SCRIPT_DIR = os.path.dirname(sys.argv[0])
+
+def check_for_pubspec_yaml():
+ return os.path.exists(os.path.join(SCRIPT_DIR, 'pubspec.yaml'))
+
+def change_directory(directory):
+ return os.chdir(directory)
+
+def remove_existing_packages(base_path):
+ print('Removing all package directories under %s' % base_path)
+ for child in os.listdir(base_path):
+ path = os.path.join(base_path, child)
+ if os.path.isdir(path):
+ print('Removing %s ' % path)
+ shutil.rmtree(path)
+
+def pub_get(pub_exe):
+ return subprocess.check_output([pub_exe, 'get'])
+
+def copy_packages(base_path):
+ packages_path = os.path.join(base_path, 'packages')
+ for package in os.listdir(packages_path):
+ lib_path = os.path.realpath(os.path.join(packages_path, package))
+ package_path = os.path.normpath(os.path.join(lib_path, '..'))
+ destinaton_path = os.path.join(base_path, package)
+ print('Copying %s to %s' % (package_path, destinaton_path))
+ shutil.copytree(package_path, destinaton_path)
+
+def cleanup(base_path):
+ shutil.rmtree(os.path.join(base_path, 'packages'), True)
+ shutil.rmtree(os.path.join(base_path, '.pub'), True)
+ os.remove(os.path.join(base_path, '.packages'))
+
+def main():
+ parser = argparse.ArgumentParser(description='Update third_party packages')
+ parser.add_argument('--pub-exe',
+ action='store',
+ metavar='pub_exe',
+ help='Path to the pub executable',
+ default='../../../../third_party/dart-sdk/dart-sdk/bin/pub')
+
+ args = parser.parse_args()
+ if not check_for_pubspec_yaml():
+ print('Error could not find pubspec.yaml')
+ return 1
+
+ remove_existing_packages(SCRIPT_DIR)
+ change_directory(SCRIPT_DIR)
+ print('Running pub get')
+ pub_get(args.pub_exe)
+ copy_packages(SCRIPT_DIR)
+ print('Cleaning up')
+ cleanup(SCRIPT_DIR)
+
+if __name__ == '__main__':
+ sys.exit(main())
« no previous file with comments | « mojo/public/dart/third_party/unittest/test/with_test_environment_test.dart ('k') | mojo/public/dart/third_party/utf/LICENSE » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698