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

Side by Side Diff: pkg/analyzer_cli/lib/src/build_mode.dart

Issue 1903053003: Sort build_mode.dart. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 8 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 unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library analyzer_cli.src.build_mode; 5 library analyzer_cli.src.build_mode;
6 6
7 import 'dart:core' hide Resource; 7 import 'dart:core' hide Resource;
8 import 'dart:io' as io; 8 import 'dart:io' as io;
9 9
10 import 'package:analyzer/dart/ast/ast.dart' show CompilationUnit; 10 import 'package:analyzer/dart/ast/ast.dart' show CompilationUnit;
(...skipping 13 matching lines...) Expand all
24 import 'package:analyzer/src/summary/summarize_ast.dart'; 24 import 'package:analyzer/src/summary/summarize_ast.dart';
25 import 'package:analyzer/src/summary/summarize_elements.dart'; 25 import 'package:analyzer/src/summary/summarize_elements.dart';
26 import 'package:analyzer/task/dart.dart'; 26 import 'package:analyzer/task/dart.dart';
27 import 'package:analyzer_cli/src/analyzer_impl.dart'; 27 import 'package:analyzer_cli/src/analyzer_impl.dart';
28 import 'package:analyzer_cli/src/driver.dart'; 28 import 'package:analyzer_cli/src/driver.dart';
29 import 'package:analyzer_cli/src/error_formatter.dart'; 29 import 'package:analyzer_cli/src/error_formatter.dart';
30 import 'package:analyzer_cli/src/options.dart'; 30 import 'package:analyzer_cli/src/options.dart';
31 import 'package:bazel_worker/bazel_worker.dart'; 31 import 'package:bazel_worker/bazel_worker.dart';
32 32
33 /** 33 /**
34 * Persistent Bazel worker.
35 */
36 class AnalyzerWorkerLoop extends SyncWorkerLoop {
37 final StringBuffer errorBuffer = new StringBuffer();
38 final StringBuffer outBuffer = new StringBuffer();
39
40 final String dartSdkPath;
41
42 AnalyzerWorkerLoop(SyncWorkerConnection connection, {this.dartSdkPath})
43 : super(connection: connection);
44
45 factory AnalyzerWorkerLoop.std(
46 {io.Stdin stdinStream, io.Stdout stdoutStream, String dartSdkPath}) {
47 SyncWorkerConnection connection = new StdSyncWorkerConnection(
48 stdinStream: stdinStream, stdoutStream: stdoutStream);
49 return new AnalyzerWorkerLoop(connection, dartSdkPath: dartSdkPath);
50 }
51
52 /**
53 * Performs analysis with given [options].
54 */
55 void analyze(CommandLineOptions options) {
56 new BuildMode(options, new AnalysisStats()).analyze();
57 AnalysisEngine.instance.clearCaches();
58 }
59
60 /**
61 * Perform a single loop step.
62 */
63 WorkResponse performRequest(WorkRequest request) {
64 errorBuffer.clear();
65 outBuffer.clear();
66 try {
67 // Add in the dart-sdk argument if `dartSdkPath` is not null, otherwise it
68 // will try to find the currently installed sdk.
69 var arguments = new List.from(request.arguments);
70 if (dartSdkPath != null &&
71 !arguments.any((arg) => arg.startsWith('--dart-sdk'))) {
72 arguments.add('--dart-sdk=$dartSdkPath');
73 }
74 // Prepare options.
75 CommandLineOptions options =
76 CommandLineOptions.parse(arguments, (String msg) {
77 throw new ArgumentError(msg);
78 });
79 // Analyze and respond.
80 analyze(options);
81 String msg = _getErrorOutputBuffersText();
82 return new WorkResponse()
83 ..exitCode = EXIT_CODE_OK
84 ..output = msg;
85 } catch (e, st) {
86 String msg = _getErrorOutputBuffersText();
87 msg += '$e\n$st';
88 return new WorkResponse()
89 ..exitCode = EXIT_CODE_ERROR
90 ..output = msg;
91 }
92 }
93
94 /**
95 * Run the worker loop.
96 */
97 @override
98 void run() {
99 errorSink = errorBuffer;
100 outSink = outBuffer;
101 exitHandler = (int exitCode) {
102 return throw new StateError('Exit called: $exitCode');
103 };
104 super.run();
105 }
106
107 String _getErrorOutputBuffersText() {
108 String msg = '';
109 if (errorBuffer.isNotEmpty) {
110 msg += errorBuffer.toString() + '\n';
111 }
112 if (outBuffer.isNotEmpty) {
113 msg += outBuffer.toString() + '\n';
114 }
115 return msg;
116 }
117 }
118
119 /**
34 * Analyzer used when the "--build-mode" option is supplied. 120 * Analyzer used when the "--build-mode" option is supplied.
35 */ 121 */
36 class BuildMode { 122 class BuildMode {
37 final CommandLineOptions options; 123 final CommandLineOptions options;
38 final AnalysisStats stats; 124 final AnalysisStats stats;
39 125
40 final ResourceProvider resourceProvider = PhysicalResourceProvider.INSTANCE; 126 final ResourceProvider resourceProvider = PhysicalResourceProvider.INSTANCE;
41 SummaryDataStore summaryDataStore; 127 SummaryDataStore summaryDataStore;
42 InternalAnalysisContext context; 128 InternalAnalysisContext context;
43 Map<Uri, JavaFile> uriToFileMap; 129 Map<Uri, JavaFile> uriToFileMap;
(...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after
265 'Illegal input file (must be "\$uri|\$path"): $sourceFile'); 351 'Illegal input file (must be "\$uri|\$path"): $sourceFile');
266 return null; 352 return null;
267 } 353 }
268 Uri uri = Uri.parse(sourceFile.substring(0, pipeIndex)); 354 Uri uri = Uri.parse(sourceFile.substring(0, pipeIndex));
269 String path = sourceFile.substring(pipeIndex + 1); 355 String path = sourceFile.substring(pipeIndex + 1);
270 uriToFileMap[uri] = new JavaFile(path); 356 uriToFileMap[uri] = new JavaFile(path);
271 } 357 }
272 return uriToFileMap; 358 return uriToFileMap;
273 } 359 }
274 } 360 }
275
276 /**
277 * Persistent Bazel worker.
278 */
279 class AnalyzerWorkerLoop extends SyncWorkerLoop {
280 final StringBuffer errorBuffer = new StringBuffer();
281 final StringBuffer outBuffer = new StringBuffer();
282
283 final String dartSdkPath;
284
285 AnalyzerWorkerLoop(SyncWorkerConnection connection, {this.dartSdkPath})
286 : super(connection: connection);
287
288 factory AnalyzerWorkerLoop.std(
289 {io.Stdin stdinStream, io.Stdout stdoutStream, String dartSdkPath}) {
290 SyncWorkerConnection connection = new StdSyncWorkerConnection(
291 stdinStream: stdinStream, stdoutStream: stdoutStream);
292 return new AnalyzerWorkerLoop(connection, dartSdkPath: dartSdkPath);
293 }
294
295 /**
296 * Performs analysis with given [options].
297 */
298 void analyze(CommandLineOptions options) {
299 new BuildMode(options, new AnalysisStats()).analyze();
300 AnalysisEngine.instance.clearCaches();
301 }
302
303 /**
304 * Perform a single loop step.
305 */
306 WorkResponse performRequest(WorkRequest request) {
307 errorBuffer.clear();
308 outBuffer.clear();
309 try {
310 // Add in the dart-sdk argument if `dartSdkPath` is not null, otherwise it
311 // will try to find the currently installed sdk.
312 var arguments = new List.from(request.arguments);
313 if (dartSdkPath != null &&
314 !arguments.any((arg) => arg.startsWith('--dart-sdk'))) {
315 arguments.add('--dart-sdk=$dartSdkPath');
316 }
317 // Prepare options.
318 CommandLineOptions options =
319 CommandLineOptions.parse(arguments, (String msg) {
320 throw new ArgumentError(msg);
321 });
322 // Analyze and respond.
323 analyze(options);
324 String msg = _getErrorOutputBuffersText();
325 return new WorkResponse()
326 ..exitCode = EXIT_CODE_OK
327 ..output = msg;
328 } catch (e, st) {
329 String msg = _getErrorOutputBuffersText();
330 msg += '$e\n$st';
331 return new WorkResponse()
332 ..exitCode = EXIT_CODE_ERROR
333 ..output = msg;
334 }
335 }
336
337 /**
338 * Run the worker loop.
339 */
340 @override
341 void run() {
342 errorSink = errorBuffer;
343 outSink = outBuffer;
344 exitHandler = (int exitCode) {
345 return throw new StateError('Exit called: $exitCode');
346 };
347 super.run();
348 }
349
350 String _getErrorOutputBuffersText() {
351 String msg = '';
352 if (errorBuffer.isNotEmpty) {
353 msg += errorBuffer.toString() + '\n';
354 }
355 if (outBuffer.isNotEmpty) {
356 msg += outBuffer.toString() + '\n';
357 }
358 return msg;
359 }
360 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698