blob: 6222b0f4786b15262130e6a9151b74438b7767bc [file] [log] [blame]
// 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.
import 'dart:io';
import 'package:args/args.dart';
import 'package:logging/logging.dart';
import '../lib/docgen.dart';
/**
* Analyzes Dart files and generates a representation of included libraries,
* classes, and members.
*/
void main() {
logger.onRecord.listen((record) => print(record.message));
var results = initArgParser().parse(new Options().arguments);
if (results['help']) return;
new Docgen(results);
}
/**
* Creates parser for docgen command line arguments.
*/
ArgParser initArgParser() {
var parser = new ArgParser();
parser.addFlag('help', abbr: 'h',
help: 'Prints help and usage information.',
negatable: false,
callback: (help) {
if (help) {
logger.info(parser.getUsage());
logger.info(usage);
}
});
parser.addFlag('verbose', abbr: 'v',
help: 'Output more logging information.', negatable: false,
callback: (verbose) {
if (verbose) Logger.root.level = Level.FINEST;
});
parser.addOption('output-format', abbr: 'o',
help: 'Sets the output format.',
allowed: ['yaml', 'json'],
allowedHelp: {'yaml' : 'Outputs to YAML. (Default)',
'json' : 'Outputs to JSON.'});
parser.addFlag('yaml', abbr: 'y',
help: 'Same as output-format=yaml.', negatable: false);
parser.addFlag('json', abbr: 'j',
help: 'Same as output-format=json.', negatable: false);
parser.addFlag('include-private',
help: 'Flag to include private declarations.', negatable: false);
parser.addFlag('include-sdk',
help: 'Flag to parse SDK Library files.', negatable: false);
return parser;
}