Index: mojo/public/dart/third_party/csslib/lib/src/options.dart |
diff --git a/mojo/public/dart/third_party/csslib/lib/src/options.dart b/mojo/public/dart/third_party/csslib/lib/src/options.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..95e8a2faba8cf06b4e3ea58740418260461fd124 |
--- /dev/null |
+++ b/mojo/public/dart/third_party/csslib/lib/src/options.dart |
@@ -0,0 +1,111 @@ |
+// Copyright (c) 2012, 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 csslib.src.options; |
+ |
+import 'package:args/args.dart'; |
+ |
+class PreprocessorOptions { |
+ /** Generate polyfill code (e.g., var, etc.) */ |
+ final bool polyfill; |
+ |
+ /** Report warnings as errors. */ |
+ final bool warningsAsErrors; |
+ |
+ /** Throw an exception on warnings (not used by command line tool). */ |
+ final bool throwOnWarnings; |
+ |
+ /** Throw an exception on errors (not used by command line tool). */ |
+ final bool throwOnErrors; |
+ |
+ /** True to show informational messages. The `--verbose` flag. */ |
+ final bool verbose; |
+ |
+ /** True to show warning messages for bad CSS. The '--checked' flag. */ |
+ final bool checked; |
+ |
+ // TODO(terry): Add mixin support and nested rules. |
+ /** |
+ * Subset of Less commands enabled; disable with '--no-less'. |
+ * Less syntax supported: |
+ * - @name at root level statically defines variables resolved at compilation |
+ * time. Essentially a directive e.g., @var-name. |
+ */ |
+ final bool lessSupport; |
+ |
+ /** Whether to use colors to print messages on the terminal. */ |
+ final bool useColors; |
+ |
+ /** File to process by the compiler. */ |
+ final String inputFile; |
+ |
+ const PreprocessorOptions({this.verbose: false, this.checked: false, |
+ this.lessSupport: true, this.warningsAsErrors: false, |
+ this.throwOnErrors: false, this.throwOnWarnings: false, |
+ this.useColors: true, this.polyfill: false, this.inputFile}); |
+ |
+ PreprocessorOptions.fromArgs(ArgResults args) |
+ : warningsAsErrors = args['warnings_as_errors'], |
+ throwOnWarnings = args['throw_on_warnings'], |
+ throwOnErrors = args['throw_on_errors'], |
+ verbose = args['verbose'], |
+ checked = args['checked'], |
+ lessSupport = args['less'], |
+ useColors = args['colors'], |
+ polyfill = args['polyfill'], |
+ inputFile = args.rest.length > 0 ? args.rest[0] : null; |
+ |
+ // tool.dart [options...] <css file> |
+ static PreprocessorOptions parse(List<String> arguments) { |
+ var parser = new ArgParser() |
+ ..addFlag('verbose', |
+ abbr: 'v', |
+ defaultsTo: false, |
+ negatable: false, |
+ help: 'Display detail info') |
+ ..addFlag('checked', |
+ defaultsTo: false, |
+ negatable: false, |
+ help: 'Validate CSS values invalid value display a warning message') |
+ ..addFlag('less', |
+ defaultsTo: true, |
+ negatable: true, |
+ help: 'Supports subset of Less syntax') |
+ ..addFlag('suppress_warnings', |
+ defaultsTo: true, help: 'Warnings not displayed') |
+ ..addFlag('warnings_as_errors', |
+ defaultsTo: false, help: 'Warning handled as errors') |
+ ..addFlag('throw_on_errors', |
+ defaultsTo: false, help: 'Throw on errors encountered') |
+ ..addFlag('throw_on_warnings', |
+ defaultsTo: false, help: 'Throw on warnings encountered') |
+ ..addFlag('colors', |
+ defaultsTo: true, help: 'Display errors/warnings in colored text') |
+ ..addFlag('polyfill', |
+ defaultsTo: false, help: 'Generate polyfill for new CSS features') |
+ ..addFlag('help', |
+ abbr: 'h', |
+ defaultsTo: false, |
+ negatable: false, |
+ help: 'Displays this help message'); |
+ |
+ try { |
+ var results = parser.parse(arguments); |
+ if (results['help'] || results.rest.length == 0) { |
+ showUsage(parser); |
+ return null; |
+ } |
+ return new PreprocessorOptions.fromArgs(results); |
+ } on FormatException catch (e) { |
+ print(e.message); |
+ showUsage(parser); |
+ return null; |
+ } |
+ } |
+ |
+ static showUsage(parser) { |
+ print('Usage: css [options...] input.css'); |
+ print(parser.getUsage()); |
+ } |
+} |