diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 09a29cdb02..54b867129f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -42,7 +42,7 @@ Getting the code and configuring your environment * `git remote add upstream git@github.com:flutter/flutter.git` (So that you fetch from the master repository, not your clone, when running `git fetch` et al.) - * Run `./dev/update_packages.py` This will fetch all the Dart packages that + * Run `dart ./dev/update_packages.dart` This will fetch all the Dart packages that Flutter depends on. You can replicate what this script does by running `pub get` in each directory that contains a `pubspec.yaml` file. * Add this repository's `bin` directory to your path. That will let you use the diff --git a/dev/update_packages.dart b/dev/update_packages.dart new file mode 100644 index 0000000000..4c97507a02 --- /dev/null +++ b/dev/update_packages.dart @@ -0,0 +1,21 @@ +// 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. + +import 'dart:io'; + +final String binaryName = Platform.isWindows ? 'pub.bat' : 'pub'; +update(Directory directory) { + for (FileSystemEntity dir in directory.listSync()) { + if (dir is Directory) { + print("Updating ${dir.path}..."); + Process.runSync(binaryName, ['get'], workingDirectory: dir.path); + } + } +} + +main() { + String FLUTTER_ROOT = new File(Platform.script.toFilePath()).parent.parent.path; + update(new Directory("$FLUTTER_ROOT/packages")); + update(new Directory("$FLUTTER_ROOT/examples")); +} diff --git a/dev/update_packages.py b/dev/update_packages.py deleted file mode 100755 index 41938591d8..0000000000 --- a/dev/update_packages.py +++ /dev/null @@ -1,20 +0,0 @@ -#!/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. - -import os -import subprocess - -FLUTTER_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) - -def update(directory): - packages = sorted(os.listdir(directory)) - for package in packages: - package_dir = os.path.join(directory, package) - if os.path.isdir(package_dir): - print 'Updating', package, '...' - subprocess.check_call(['pub', 'get'], cwd=package_dir) - -update(os.path.join(FLUTTER_ROOT, 'packages')) -update(os.path.join(FLUTTER_ROOT, 'examples'))