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 ee683e2d084e7eb1a190f6aa8a6ff833fa297fc3..7da6bb41e0ca0edbded103493cf6016572603cfe 100644 |
--- a/pkg/analyzer_cli/lib/src/options.dart |
+++ b/pkg/analyzer_cli/lib/src/options.dart |
@@ -17,7 +17,7 @@ const _binaryName = 'dartanalyzer'; |
/// *Visible for testing.* |
ExitHandler exitHandler = exit; |
-/// Print the given message to stderr and exit with the given [exitCode] |
+/// Print the given [message] to stderr and exit with the given [exitCode]. |
void printAndFail(String message, {int exitCode: 15}) { |
errorSink.writeln(message); |
exitHandler(exitCode); |
@@ -163,8 +163,9 @@ class CommandLineOptions { |
// OK. Report deprecated options. |
if (options.enableNullAwareOperators) { |
- stderr.writeln( |
- "Info: Option '--enable-null-aware-operators' is no longer needed. Null aware operators are supported by default."); |
+ errorSink.writeln( |
+ "Info: Option '--enable-null-aware-operators' is no longer needed. " |
+ "Null aware operators are supported by default."); |
} |
return options; |
@@ -194,11 +195,13 @@ class CommandLineOptions { |
..addOption('dart-sdk', help: 'The path to the Dart SDK.') |
..addOption('packages', |
help: |
- 'Path to the package resolution configuration file, which supplies a mapping of package names to paths. This option cannot be used with --package-root.') |
+ 'Path to the package resolution configuration file, which supplies ' |
+ 'a mapping of package names to paths. This option cannot be ' |
+ 'used with --package-root.') |
..addOption('package-root', |
abbr: 'p', |
- help: |
- 'Path to a package root directory (deprecated). This option cannot be used with --packages.') |
+ help: 'Path to a package root directory (deprecated). This option ' |
+ 'cannot be used with --packages.') |
..addOption('options', help: 'Path to an analysis options file.') |
..addOption('format', |
help: 'Specifies the format in which errors are displayed.') |
@@ -308,45 +311,50 @@ class CommandLineOptions { |
// Help requests. |
if (results['help']) { |
_showUsage(parser); |
- exit(0); |
+ exitHandler(0); |
+ return null; // Only reachable in testing. |
} |
// Batch mode and input files. |
if (results['batch']) { |
if (results.rest.isNotEmpty) { |
- stderr.writeln('No source files expected in the batch mode.'); |
+ errorSink.writeln('No source files expected in the batch mode.'); |
_showUsage(parser); |
- exit(15); |
+ exitHandler(15); |
+ return null; // Only reachable in testing. |
} |
} else if (results['version']) { |
- print('$_binaryName version ${_getVersion()}'); |
- exit(0); |
+ outSink.write('$_binaryName version ${_getVersion()}'); |
+ exitHandler(0); |
+ return null; // Only reachable in testing. |
} else { |
if (results.rest.isEmpty) { |
_showUsage(parser); |
- exit(15); |
+ exitHandler(15); |
+ return null; // Only reachable in testing. |
} |
} |
return new CommandLineOptions._fromArgs(results, definedVariables); |
} on FormatException catch (e) { |
- stderr.writeln(e.message); |
+ errorSink.writeln(e.message); |
_showUsage(parser); |
- exit(15); |
+ exitHandler(15); |
+ return null; // Only reachable in testing. |
} |
} |
static _showUsage(parser) { |
- stderr |
+ errorSink |
.writeln('Usage: $_binaryName [options...] <libraries to analyze...>'); |
- stderr.writeln(parser.getUsage()); |
- stderr.writeln(''); |
- stderr.writeln( |
+ errorSink.writeln(parser.getUsage()); |
+ errorSink.writeln(''); |
+ errorSink.writeln( |
'For more information, see http://www.dartlang.org/tools/analyzer.'); |
} |
} |
/// Commandline argument parser. |
/// |
-/// TODO(pquitslund): when the args package supports ignoring unrecognized |
+/// TODO(pq): when the args package supports ignoring unrecognized |
/// options/flags, this class can be replaced with a simple [ArgParser] |
/// instance. |
class CommandLineParser { |