Index: pkg/analyzer-experimental/lib/options.dart |
diff --git a/pkg/analyzer-experimental/lib/options.dart b/pkg/analyzer-experimental/lib/options.dart |
deleted file mode 100644 |
index b42612919952c2849d8b0b19f1ad09ea6c794dc3..0000000000000000000000000000000000000000 |
--- a/pkg/analyzer-experimental/lib/options.dart |
+++ /dev/null |
@@ -1,199 +0,0 @@ |
-// Copyright (c) 2013, 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 options; |
- |
-import 'package:args/args.dart'; |
- |
-import 'dart:io'; |
- |
- |
-const _BINARY_NAME = 'analyzer'; |
-const _SDK_ENV = 'com.google.dart.sdk'; |
-final _DEFAULT_SDK_LOCATION = Platform.environment[_SDK_ENV]; |
- |
-/** |
- * Analyzer commandline configuration options. |
- */ |
-class CommandLineOptions { |
- |
- /** Batch mode (for unit testing) */ |
- final bool shouldBatch; |
- |
- /** Whether to use machine format for error display */ |
- final bool machineFormat; |
- |
- /** Whether to ignore unrecognized flags */ |
- final bool ignoreUnrecognizedFlags; |
- |
- /** Whether to print metrics */ |
- final bool showMetrics; |
- |
- /** Whether to treat warnings as fatal */ |
- final bool warningsAreFatal; |
- |
- /** The path to the dart SDK */ |
- final String dartSdkPath; |
- |
- /** The source files to analyze */ |
- final List<String> sourceFiles; |
- |
- /** |
- * Initialize options from the given parsed [args]. |
- */ |
- CommandLineOptions._fromArgs(ArgResults args) |
- : shouldBatch = args['batch'], |
- machineFormat = args['machine_format'], |
- ignoreUnrecognizedFlags = args['ignore_unrecognized_flags'], |
- showMetrics = args['metrics'], |
- warningsAreFatal = args['fatal_warnings'], |
- dartSdkPath = args['dart_sdk'], |
- sourceFiles = args.rest; |
- |
- /** |
- * Parse [args] into [CommandLineOptions] describing the specified |
- * analyzer options. In case of a format error, [null] is returned. |
- */ |
- factory CommandLineOptions.parse(List<String> args) { |
- |
- var parser = new _CommandLineParser() |
- ..addFlag('batch', abbr: 'b', help: 'Run in batch mode', |
- defaultsTo: false, negatable: false) |
- ..addOption('dart_sdk', help: 'Specify path to the Dart sdk', |
- defaultsTo: _DEFAULT_SDK_LOCATION) |
- ..addFlag('machine_format', help: 'Specify whether errors ' |
- 'should be in machine format', |
- defaultsTo: false, negatable: false) |
- ..addFlag('ignore_unrecognized_flags', |
- help: 'Ignore unrecognized command line flags', |
- defaultsTo: false, negatable: false) |
- ..addFlag('fatal_warnings', help: 'Treat non-type warnings as fatal', |
- defaultsTo: false, negatable: false) |
- ..addFlag('metrics', help: 'Print metrics', |
- defaultsTo: false, negatable: false) |
- ..addFlag('help', abbr: 'h', help: 'Display this help message', |
- defaultsTo: false, negatable: false); |
- |
- try { |
- var results = parser.parse(args); |
- if (results['help'] || results.rest.length == 0) { |
- _showUsage(parser); |
- return null; |
- } |
- return new CommandLineOptions._fromArgs(results); |
- } on FormatException catch (e) { |
- print(e.message); |
- _showUsage(parser); |
- return null; |
- } |
- |
- } |
- |
- static _showUsage(parser) { |
- print('Usage: ${_BINARY_NAME} [options...] ' |
- '<libraries to analyze...>'); |
- print(parser.getUsage()); |
- } |
- |
-} |
- |
-/** |
- * Commandline argument parser. |
- * |
- * TODO(pquitslund): when the args package supports ignoring unrecognized |
- * options/flags, this class can be replaced with a simple [ArgParser] instance. |
- */ |
-class _CommandLineParser { |
- |
- final List<String> _knownFlags; |
- final ArgParser _parser; |
- |
- /** Creates a new command line parser */ |
- _CommandLineParser() |
- : _knownFlags = <String>[], |
- _parser = new ArgParser(); |
- |
- |
- /** |
- * Defines a flag. |
- * |
- * See [ArgParser.addFlag()]. |
- */ |
- void addFlag(String name, {String abbr, String help, bool defaultsTo: false, |
- bool negatable: true, void callback(bool value)}) { |
- _knownFlags.add(name); |
- _parser.addFlag(name, abbr: abbr, help: help, defaultsTo: defaultsTo, |
- negatable: negatable, callback: callback); |
- } |
- |
- /** |
- * Defines a value-taking option. |
- * |
- * See [ArgParser.addOption()]. |
- */ |
- void addOption(String name, {String abbr, String help, List<String> allowed, |
- Map<String, String> allowedHelp, String defaultsTo, |
- void callback(value), bool allowMultiple: false}) { |
- _parser.addOption(name, abbr: abbr, help: help, allowed: allowed, |
- allowedHelp: allowedHelp, defaultsTo: defaultsTo, callback: callback, |
- allowMultiple: allowMultiple); |
- } |
- |
- |
- /** |
- * Generates a string displaying usage information for the defined options. |
- * |
- * See [ArgParser.getUsage()]. |
- */ |
- String getUsage() => _parser.getUsage(); |
- |
- /** |
- * Parses [args], a list of command-line arguments, matches them against the |
- * flags and options defined by this parser, and returns the result. |
- * |
- * See [ArgParser]. |
- */ |
- ArgResults parse(List<String> args) => _parser.parse(_filterUnknowns(args)); |
- |
- List<String> _filterUnknowns(args) { |
- |
- // Only filter args if the ignore flag is specified. |
- if (!args.contains('--ignore_unrecognized_flags')) { |
- return args; |
- } |
- |
- //TODO(pquitslund): replace w/ the following once library skew issues are sorted out |
- //return args.where((arg) => !arg.startsWith('--') || |
- // _knownFlags.contains(arg.substring(2))); |
- |
- // Filter all unrecognized flags and options. |
- var filtered = <String>[]; |
- for (var i=0; i < args.length; ++i) { |
- var arg = args[i]; |
- if (arg.startsWith('--') && arg.length > 2) { |
- if (!_knownFlags.contains(arg.substring(2))) { |
- //"eat" params by advancing to the next flag/option |
- i = _getNextFlagIndex(args, i); |
- } else { |
- filtered.add(arg); |
- } |
- } else { |
- filtered.add(arg); |
- } |
- } |
- |
- return filtered; |
- } |
- |
- _getNextFlagIndex(args, i) { |
- for ( ; i < args.length; ++i) { |
- if (args[i].startsWith('--')) { |
- return i; |
- } |
- } |
- return i; |
- } |
- |
-} |
- |