mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00

Also, make dev/update_packages.dart skip directories that have no pubspec.yaml, since firebase/ doesn't have one.
46 lines
1.6 KiB
Dart
Executable File
46 lines
1.6 KiB
Dart
Executable File
#!/usr/bin/env dart
|
|
// 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';
|
|
int runPub(Directory directory, List<String> pubArgs) {
|
|
int updateCount = 0;
|
|
for (FileSystemEntity dir in directory.listSync()) {
|
|
if (dir is Directory && FileSystemEntity.isFileSync(dir.path + Platform.pathSeparator + 'pubspec.yaml')) {
|
|
updateCount++;
|
|
Stopwatch timer = new Stopwatch()..start();
|
|
stdout.write("Updating ${dir.path}...");
|
|
ProcessResult result = Process.runSync(
|
|
binaryName,
|
|
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<String> 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;
|
|
List<String> 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");
|
|
}
|