Chromium Code Reviews| Index: utils/css/cssoptions.dart |
| diff --git a/utils/css/cssoptions.dart b/utils/css/cssoptions.dart |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..dfc13533d174589e935f9431bc1850669681ab9b |
| --- /dev/null |
| +++ b/utils/css/cssoptions.dart |
| @@ -0,0 +1,94 @@ |
| +// 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. |
| + |
| +/** General options used by the compiler. */ |
| +CSSOptions options; |
| + |
| +/** Extracts options from command-line arguments. */ |
| +void parseOptions(List<String> args, var files) { |
| + assert(options == null); |
| + options = new CSSOptions(args, files); |
| +} |
| + |
| +// TODO(sigmund): make into a generic option parser... |
|
Siggi Cherem (dart-lang)
2012/03/15 01:21:25
what did I do?
:) - remove the TODO since this is
terry
2012/03/15 19:02:49
Done.
|
| +class CSSOptions { |
| + /** Location of corelib and other special dart libraries. */ |
| + String libDir; |
| + |
| + /* The top-level dart script to compile. */ |
| + String dartScript; |
| + |
| + /** Where to place the generated code. */ |
| + String outfile; |
| + |
| + // Options that modify behavior significantly |
| + |
| + bool warningsAsErrors = false; |
| + bool checkOnly = false; |
| + |
| + // Message support |
| + bool throwOnErrors = false; |
| + bool throwOnWarnings = false; |
| + bool throwOnFatal = false; |
| + bool showInfo = false; |
| + bool showWarnings = true; |
| + bool useColors = true; |
| + |
| + /** |
| + * Options to be used later for passing to the generated code. These are all |
| + * the arguments after the first dart script, if any. |
| + */ |
| + List<String> childArgs; |
| + |
| + CSSOptions(List<String> args, var files) { |
| + bool ignoreUnrecognizedFlags = false; |
| + bool passedLibDir = false; |
| + childArgs = []; |
| + |
| + // Start from 2 to skip arguments representing the compiler command |
| + // (node/python followed by frogsh/frog.py). |
| + loop: for (int i = 2; i < args.length; i++) { |
| + var arg = args[i]; |
| + |
| + switch (arg) { |
| + case '--check-only': |
| + checkOnly = true; |
| + break; |
| + |
| + case '--verbose': |
| + showInfo = true; |
| + break; |
| + |
| + case '--suppress_warnings': |
| + showWarnings = false; |
| + break; |
| + |
| + case '--warnings_as_errors': |
| + warningsAsErrors = true; |
| + break; |
| + |
| + case '--throw_on_errors': |
| + throwOnErrors = true; |
| + break; |
| + |
| + case '--throw_on_warnings': |
| + throwOnWarnings = true; |
| + break; |
| + |
| + case '--no_colors': |
| + useColors = false; |
| + break; |
| + |
| + case '--checked': |
| + checkOnly = true; |
| + break; |
| + |
| + default: |
| + if (!ignoreUnrecognizedFlags) { |
| + print('unrecognized flag: "$arg"'); |
| + } |
| + } |
| + } |
| + } |
| +} |