Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 import 'dart:io'; | 5 import 'dart:io'; |
| 6 | 6 |
| 7 import 'package:args/args.dart'; | 7 import 'package:args/args.dart'; |
| 8 import 'package:logging/logging.dart'; | 8 import 'package:logging/logging.dart'; |
| 9 | 9 |
| 10 import '../lib/docgen.dart'; | 10 import '../lib/docgen.dart'; |
| 11 | 11 |
| 12 /** | 12 /** |
| 13 * Analyzes Dart files and generates a representation of included libraries, | 13 * Analyzes Dart files and generates a representation of included libraries, |
| 14 * classes, and members. | 14 * classes, and members. |
| 15 */ | 15 */ |
| 16 void main() { | 16 void main() { |
| 17 logger.onRecord.listen((record) => print(record.message)); | 17 logger.onRecord.listen((record) => print(record.message)); |
| 18 var results = initArgParser().parse(new Options().arguments); | 18 var results = _initArgParser().parse(new Options().arguments); |
| 19 if (results['help']) return; | 19 |
| 20 docgen(results); | 20 var outputToYaml = results['yaml'] || results['output-format'] == 'yaml'; |
| 21 var outputToJson = results['json'] || results['output-format'] == 'json'; | |
| 22 if (outputToYaml && outputToJson) { | |
|
Emily Fortuna
2013/07/02 23:44:23
I stand by what I said before. Either just have on
janicejl
2013/07/02 23:55:36
Done.
| |
| 23 throw new ArgumentError('Cannot have contradictory output flags.'); | |
| 24 } | |
| 25 outputToYaml = outputToYaml || !outputToJson; | |
| 26 | |
| 27 docgen(results.rest, | |
| 28 packageRoot: results['package-root'], | |
| 29 outputToYaml: outputToYaml, | |
| 30 includePrivate: results['include-private'], | |
| 31 includeSdk: results['parse-sdk'] || results['include-sdk'], | |
| 32 parseSdk: results['parse-sdk']); | |
| 21 } | 33 } |
| 22 | 34 |
| 23 /** | 35 /** |
| 24 * Creates parser for docgen command line arguments. | 36 * Creates parser for docgen command line arguments. |
| 25 */ | 37 */ |
| 26 ArgParser initArgParser() { | 38 ArgParser _initArgParser() { |
| 27 var parser = new ArgParser(); | 39 var parser = new ArgParser(); |
| 28 parser.addFlag('help', abbr: 'h', | 40 parser.addFlag('help', abbr: 'h', |
| 29 help: 'Prints help and usage information.', | 41 help: 'Prints help and usage information.', |
| 30 negatable: false, | 42 negatable: false, |
| 31 callback: (help) { | 43 callback: (help) { |
| 32 if (help) { | 44 if (help) { |
| 33 logger.info(parser.getUsage()); | 45 logger.info(parser.getUsage()); |
| 34 logger.info(USAGE); | 46 logger.info(USAGE); |
| 47 exit(0); | |
| 35 } | 48 } |
| 36 }); | 49 }); |
| 37 parser.addFlag('verbose', abbr: 'v', | 50 parser.addFlag('verbose', abbr: 'v', |
| 38 help: 'Output more logging information.', negatable: false, | 51 help: 'Output more logging information.', negatable: false, |
| 39 callback: (verbose) { | 52 callback: (verbose) { |
| 40 if (verbose) Logger.root.level = Level.FINEST; | 53 if (verbose) Logger.root.level = Level.FINEST; |
| 41 }); | 54 }); |
| 42 parser.addOption('output-format', abbr: 'o', | 55 parser.addOption('output-format', abbr: 'o', |
| 43 help: 'Sets the output format.', | 56 help: 'Sets the output format.', |
| 44 allowed: ['yaml', 'json'], | 57 allowed: ['yaml', 'json'], |
| 45 allowedHelp: {'yaml' : 'Outputs to YAML. (Default)', | 58 allowedHelp: {'yaml' : 'Outputs to YAML. (Default)', |
| 46 'json' : 'Outputs to JSON.'}); | 59 'json' : 'Outputs to JSON.'}); |
| 47 parser.addFlag('yaml', abbr: 'y', | 60 parser.addFlag('yaml', abbr: 'y', |
| 48 help: 'Same as output-format=yaml.', negatable: false); | 61 help: 'Same as output-format=yaml.', negatable: false); |
| 49 parser.addFlag('json', abbr: 'j', | 62 parser.addFlag('json', abbr: 'j', |
| 50 help: 'Same as output-format=json.', negatable: false); | 63 help: 'Same as output-format=json.', negatable: false); |
| 51 parser.addFlag('include-private', | 64 parser.addFlag('include-private', |
| 52 help: 'Flag to include private declarations.', negatable: false); | 65 help: 'Flag to include private declarations.', negatable: false); |
| 53 parser.addFlag('include-sdk', | 66 parser.addFlag('include-sdk', |
| 54 help: 'Flag to parse SDK Library files.', negatable: false); | 67 help: 'Flag to parse SDK Library files.', negatable: false); |
| 55 parser.addFlag('parse-sdk', | 68 parser.addFlag('parse-sdk', |
| 56 help: 'Parses the SDK libraries only.', | 69 help: 'Parses the SDK libraries only.', |
| 57 defaultsTo: false, negatable: false); | 70 defaultsTo: false, negatable: false); |
| 58 parser.addOption('package-root', | 71 parser.addOption('package-root', |
| 59 help: "Sets the package root of the library being analyzed."); | 72 help: "Sets the package root of the library being analyzed."); |
| 60 | 73 |
| 61 return parser; | 74 return parser; |
| 62 } | 75 } |
| OLD | NEW |