| 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());
|
| + }
|
| +}
|
|
|