diff --git a/.travis.yml b/.travis.yml index 6d38aa0d41..785188f17d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,3 +13,6 @@ before_script: - ./travis/setup.sh script: - ./travis/test.sh +cache: + directories: + - $HOME/.pub-cache diff --git a/dev/update_packages.dart b/dev/update_packages.dart index 4616682409..94c1c23f31 100755 --- a/dev/update_packages.dart +++ b/dev/update_packages.dart @@ -6,27 +6,40 @@ import 'dart:io'; final String binaryName = Platform.isWindows ? 'pub.bat' : 'pub'; -void update(Directory directory, bool upgrade) { +int runPub(Directory directory, List pubArgs) { + int updateCount = 0; for (FileSystemEntity dir in directory.listSync()) { if (dir is Directory) { - print("Updating ${dir.path}..."); + updateCount++; + Stopwatch timer = new Stopwatch()..start(); + stdout.write("Updating ${dir.path}..."); ProcessResult result = Process.runSync( binaryName, - [ upgrade ? 'upgrade' : 'get' ], + pubArgs, workingDirectory: dir.path ); + timer.stop(); + stdout.write(" (${timer.elapsedMilliseconds} ms)"); if (result.exitCode != 0) { print("... failed with exit code ${result.exitCode}."); print(result.stdout); print(result.stderr); + } else { + stdout.write("\n"); } } } + return updateCount; } void main(List arguments) { + Stopwatch timer = new Stopwatch()..start(); bool upgrade = arguments.length > 0 && arguments[0] == '--upgrade'; String FLUTTER_ROOT = new File(Platform.script.toFilePath()).parent.parent.path; - update(new Directory("$FLUTTER_ROOT/packages"), upgrade); - update(new Directory("$FLUTTER_ROOT/examples"), upgrade); + List pubArgs = [ upgrade ? 'upgrade' : 'get' ]; + int count = 0; + count += runPub(new Directory("$FLUTTER_ROOT/packages"), pubArgs); + count += runPub(new Directory("$FLUTTER_ROOT/examples"), pubArgs); + String command = "$binaryName ${pubArgs.join(' ')}"; + print("Ran \"$command\" $count times in ${timer.elapsedMilliseconds} ms"); }