| OLD | NEW |
| 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.options; | 5 library analyzer_cli.src.options; |
| 6 | 6 |
| 7 import 'dart:io'; | 7 import 'dart:io'; |
| 8 | 8 |
| 9 import 'package:analyzer/file_system/physical_file_system.dart'; | 9 import 'package:analyzer/file_system/physical_file_system.dart'; |
| 10 import 'package:analyzer/src/command_line/arguments.dart'; | 10 import 'package:analyzer/src/command_line/arguments.dart'; |
| 11 import 'package:analyzer/src/command_line/command_line_parser.dart'; | |
| 12 import 'package:analyzer_cli/src/driver.dart'; | 11 import 'package:analyzer_cli/src/driver.dart'; |
| 13 import 'package:args/args.dart'; | 12 import 'package:args/args.dart'; |
| 14 import 'package:cli_util/cli_util.dart' show getSdkDir; | 13 import 'package:cli_util/cli_util.dart' show getSdkDir; |
| 15 | 14 |
| 16 const _binaryName = 'dartanalyzer'; | 15 const _binaryName = 'dartanalyzer'; |
| 17 | 16 |
| 18 /// Shared exit handler. | 17 /// Shared exit handler. |
| 19 /// | 18 /// |
| 20 /// *Visible for testing.* | 19 /// *Visible for testing.* |
| 21 ExitHandler exitHandler = exit; | 20 ExitHandler exitHandler = exit; |
| (...skipping 253 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 275 } | 274 } |
| 276 } | 275 } |
| 277 | 276 |
| 278 static CommandLineOptions _parse(List<String> args) { | 277 static CommandLineOptions _parse(List<String> args) { |
| 279 args = preprocessArgs(PhysicalResourceProvider.INSTANCE, args); | 278 args = preprocessArgs(PhysicalResourceProvider.INSTANCE, args); |
| 280 | 279 |
| 281 bool verbose = args.contains('-v') || args.contains('--verbose'); | 280 bool verbose = args.contains('-v') || args.contains('--verbose'); |
| 282 bool hide = !verbose; | 281 bool hide = !verbose; |
| 283 | 282 |
| 284 args = args.expand((String arg) => arg.split('=')).toList(); | 283 args = args.expand((String arg) => arg.split('=')).toList(); |
| 285 var parser = new CommandLineParser() | 284 var parser = new ArgParser(allowTrailingOptions: true) |
| 286 ..addFlag('batch', | 285 ..addFlag('batch', |
| 287 abbr: 'b', | 286 abbr: 'b', |
| 288 help: 'Read commands from standard input (for testing).', | 287 help: 'Read commands from standard input (for testing).', |
| 289 defaultsTo: false, | 288 defaultsTo: false, |
| 290 negatable: false) | 289 negatable: false) |
| 291 ..addOption('dart-sdk', help: 'The path to the Dart SDK.') | 290 ..addOption('dart-sdk', help: 'The path to the Dart SDK.') |
| 292 ..addOption('dart-sdk-summary', | 291 ..addOption('dart-sdk-summary', |
| 293 help: 'The path to the Dart SDK summary file.', hide: true) | 292 help: 'The path to the Dart SDK summary file.', hide: true) |
| 294 ..addOption('packages', | 293 ..addOption('packages', |
| 295 help: | 294 help: |
| (...skipping 15 matching lines...) Expand all Loading... |
| 311 help: 'Print the analyzer version.', | 310 help: 'Print the analyzer version.', |
| 312 defaultsTo: false, | 311 defaultsTo: false, |
| 313 negatable: false) | 312 negatable: false) |
| 314 ..addFlag('lints', | 313 ..addFlag('lints', |
| 315 help: 'Show lint results.', defaultsTo: false, negatable: false) | 314 help: 'Show lint results.', defaultsTo: false, negatable: false) |
| 316 ..addFlag('no-hints', | 315 ..addFlag('no-hints', |
| 317 help: 'Do not show hint results.', | 316 help: 'Do not show hint results.', |
| 318 defaultsTo: false, | 317 defaultsTo: false, |
| 319 negatable: false) | 318 negatable: false) |
| 320 ..addFlag('disable-cache-flushing', defaultsTo: false, hide: true) | 319 ..addFlag('disable-cache-flushing', defaultsTo: false, hide: true) |
| 320 ..addFlag(ignoreUnrecognizedFlagsFlag, |
| 321 help: 'Ignore unrecognized command line flags.', |
| 322 defaultsTo: false, |
| 323 negatable: false) |
| 321 ..addFlag('fatal-hints', | 324 ..addFlag('fatal-hints', |
| 322 help: 'Treat hints as fatal.', defaultsTo: false, negatable: false) | 325 help: 'Treat hints as fatal.', defaultsTo: false, negatable: false) |
| 323 ..addFlag('fatal-warnings', | 326 ..addFlag('fatal-warnings', |
| 324 help: 'Treat non-type warnings as fatal.', | 327 help: 'Treat non-type warnings as fatal.', |
| 325 defaultsTo: false, | 328 defaultsTo: false, |
| 326 negatable: false) | 329 negatable: false) |
| 327 ..addFlag('fatal-lints', | 330 ..addFlag('fatal-lints', |
| 328 help: 'Treat lints as fatal.', defaultsTo: false, negatable: false) | 331 help: 'Treat lints as fatal.', defaultsTo: false, negatable: false) |
| 329 ..addFlag('package-warnings', | 332 ..addFlag('package-warnings', |
| 330 help: 'Show warnings from package: imports.', | 333 help: 'Show warnings from package: imports.', |
| (...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 482 ..addFlag('no-implicit-dynamic', | 485 ..addFlag('no-implicit-dynamic', |
| 483 negatable: false, | 486 negatable: false, |
| 484 help: 'Disable implicit dynamic (https://goo.gl/m0UgXD)'); | 487 help: 'Disable implicit dynamic (https://goo.gl/m0UgXD)'); |
| 485 | 488 |
| 486 try { | 489 try { |
| 487 // TODO(scheglov) https://code.google.com/p/dart/issues/detail?id=11061 | 490 // TODO(scheglov) https://code.google.com/p/dart/issues/detail?id=11061 |
| 488 args = | 491 args = |
| 489 args.map((String arg) => arg == '-batch' ? '--batch' : arg).toList(); | 492 args.map((String arg) => arg == '-batch' ? '--batch' : arg).toList(); |
| 490 Map<String, String> definedVariables = <String, String>{}; | 493 Map<String, String> definedVariables = <String, String>{}; |
| 491 args = extractDefinedVariables(args, definedVariables); | 494 args = extractDefinedVariables(args, definedVariables); |
| 495 if (args.contains('--$ignoreUnrecognizedFlagsFlag')) { |
| 496 args = filterUnknownArguments(args, parser); |
| 497 } |
| 492 var results = parser.parse(args); | 498 var results = parser.parse(args); |
| 493 | 499 |
| 494 // Persistent worker. | 500 // Persistent worker. |
| 495 if (args.contains('--persistent_worker')) { | 501 if (args.contains('--persistent_worker')) { |
| 496 bool validArgs; | 502 bool validArgs; |
| 497 if (!args.contains('--build-mode')) { | 503 if (!args.contains('--build-mode')) { |
| 498 validArgs = false; | 504 validArgs = false; |
| 499 } else if (args.length == 2) { | 505 } else if (args.length == 2) { |
| 500 validArgs = true; | 506 validArgs = true; |
| 501 } else if (args.length == 4 && args.contains('--dart-sdk')) { | 507 } else if (args.length == 4 && args.contains('--dart-sdk')) { |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 556 | 562 |
| 557 static _showUsage(parser) { | 563 static _showUsage(parser) { |
| 558 errorSink | 564 errorSink |
| 559 .writeln('Usage: $_binaryName [options...] <libraries to analyze...>'); | 565 .writeln('Usage: $_binaryName [options...] <libraries to analyze...>'); |
| 560 errorSink.writeln(parser.getUsage()); | 566 errorSink.writeln(parser.getUsage()); |
| 561 errorSink.writeln(''); | 567 errorSink.writeln(''); |
| 562 errorSink.writeln( | 568 errorSink.writeln( |
| 563 'For more information, see http://www.dartlang.org/tools/analyzer.'); | 569 'For more information, see http://www.dartlang.org/tools/analyzer.'); |
| 564 } | 570 } |
| 565 } | 571 } |
| OLD | NEW |