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

Unified Diff: pkg/analyzer_cli/lib/src/options.dart

Issue 1848543002: Support --persistent_worker flag in --build-mode. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Fixes for review comments. Created 4 years, 9 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: pkg/analyzer_cli/lib/src/options.dart
diff --git a/pkg/analyzer_cli/lib/src/options.dart b/pkg/analyzer_cli/lib/src/options.dart
index f1095ef7630cdf534b2f521733fc000a6651c7c5..4bf126d24cfd15f63ae9ce62ad2578115e582d8c 100644
--- a/pkg/analyzer_cli/lib/src/options.dart
+++ b/pkg/analyzer_cli/lib/src/options.dart
@@ -39,6 +39,9 @@ class CommandLineOptions {
/// Whether to use build mode.
final bool buildMode;
+ /// Whether to use build mode as a Bazel persistent worker.
+ final bool buildModePersistentWorker;
+
/// List of summary file paths to use in build mode.
final List<String> buildSummaryInputs;
@@ -145,6 +148,7 @@ class CommandLineOptions {
ArgResults args, Map<String, String> definedVariables)
: buildAnalysisOutput = args['build-analysis-output'],
buildMode = args['build-mode'],
+ buildModePersistentWorker = args['persistent_worker'],
buildSummaryFallback = args['build-summary-fallback'],
buildSummaryInputs = args['build-summary-input'],
buildSummaryOnly = args['build-summary-only'],
@@ -186,7 +190,7 @@ class CommandLineOptions {
/// analyzer options. In case of a format error, calls [printAndFail], which
/// by default prints an error message to stderr and exits.
static CommandLineOptions parse(List<String> args,
- [printAndFail = printAndFail]) {
+ [printAndFail(String msg) = printAndFail]) {
CommandLineOptions options = _parse(args);
// Check SDK.
{
@@ -229,6 +233,10 @@ class CommandLineOptions {
}
// Build mode.
+ if (options.buildModePersistentWorker && !options.buildMode) {
+ printAndFail('The option --persisten_worker can be used only '
+ 'together with --build-mode.');
+ }
if (options.buildSummaryOnlyDiet && !options.buildSummaryOnly) {
printAndFail('The option --build-summary-only-diet can be used only '
'together with --build-summary-only.');
@@ -331,6 +339,11 @@ class CommandLineOptions {
//
// Build mode.
//
+ ..addFlag('persistent_worker',
+ help: 'Enable Bazel persistent worker mode.',
+ defaultsTo: false,
+ negatable: false,
+ hide: true)
..addOption('build-analysis-output',
help:
'Specifies the path to the file where analysis results should be written.',
@@ -437,6 +450,17 @@ class CommandLineOptions {
args.map((String arg) => arg == '-batch' ? '--batch' : arg).toList();
Map<String, String> definedVariables = <String, String>{};
var results = parser.parse(args, definedVariables);
+
+ // Persistent worker.
+ if (args.contains('--persistent_worker')) {
+ if (args.length != 2 || !args.contains('--build-mode')) {
+ printAndFail('The --persistent_worker flag should be used with and '
+ 'only with the --build-mode flag.');
+ return null; // Only reachable in testing.
+ }
+ return new CommandLineOptions._fromArgs(results, definedVariables);
+ }
+
// Help requests.
if (results['help']) {
_showUsage(parser);
@@ -451,6 +475,14 @@ class CommandLineOptions {
exitHandler(15);
return null; // Only reachable in testing.
}
+ } else if (results['persistent_worker']) {
+ if (results.rest.isNotEmpty) {
+ errorSink.writeln(
+ 'No source files expected in the persistent worker mode.');
+ _showUsage(parser);
+ exitHandler(15);
+ return null; // Only reachable in testing.
+ }
} else if (results['version']) {
outSink.write('$_binaryName version ${_getVersion()}');
exitHandler(0);

Powered by Google App Engine
This is Rietveld 408576698