blob: 9b3d1c279362bb506730e1719583dc3275311d1e [file] [log] [blame]
// Copyright (c) 2014, 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.
library dart2js.profile_many;
import 'dart:async';
import 'package:compiler/src/dart2js.dart' as cmdline;
const String USAGE = """
Usage: dart2js_profile_many.dart [OPTIONS] [FILES]
Invokes dart2js separately for each file using the given options.
This is for profiling multiple compilations in the Dart Observatory.
""";
printUsage() {
print(USAGE);
}
void main(List<String> args) {
var options = <String>[];
var files = <String>[];
for (String arg in args) {
if (arg.startsWith('-')) {
options.add(arg);
} else {
files.add(arg);
}
}
if (files.length == 0) {
printUsage();
return;
}
cmdline.exitFunc = (code) {
throw "Exit with code $code";
};
Future.forEach(files, (String file) {
List subargs = [];
subargs.addAll(options);
subargs.add(file);
return cmdline.compilerMain(subargs).catchError((e) {});
}).then((_) {
print("Done");
});
}