Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(512)

Side by Side Diff: pkg/docgen/bin/docgen.dart

Issue 1364553002: remove docgen source and targets from build (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: remove scripts Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « pkg/docgen/README.md ('k') | pkg/docgen/lib/docgen.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
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
3 // BSD-style license that can be found in the LICENSE file.
4
5 import 'dart:io';
6
7 import 'package:args/args.dart';
8 import 'package:logging/logging.dart';
9 import 'package:path/path.dart' as path;
10
11 // Must use relative paths because library imports mirrors via relative paths
12 import '../lib/docgen.dart';
13
14 /**
15 * Analyzes Dart files and generates a representation of included libraries,
16 * classes, and members.
17 */
18 void main(List<String> arguments) {
19 var options = _initArgParser().parse(arguments);
20 var files = options.rest.map(path.normalize).toList();
21 if (files.isEmpty) _printHelpAndExit();
22 var startPage = options['start-page'];
23 if (_singlePackage(files) && startPage == null) {
24 startPage = _defaultStartPageFor(files);
25 _printDeprecatedMessage();
26 print("Using default options for documenting a single package: "
27 "--start-page=$startPage");
28 }
29 var includeSdk = options['parse-sdk'] || options['include-sdk'];
30 var scriptDir = path.dirname(Platform.script.toFilePath());
31 var introduction = includeSdk ? '' : options['introduction'];
32
33 var pubScript =
34 options['sdk'] != null ? path.join(options['sdk'], 'bin', 'pub') : 'pub';
35
36 var dartBinary = options['sdk'] != null
37 ? path.join(options['sdk'], 'bin', 'dart')
38 : 'dart';
39
40 var excludedLibraries = options['exclude-lib'];
41 if (excludedLibraries == null) excludedLibraries = [];
42
43 var indentJSON = options['indent-json'] as bool;
44
45 docgen(files,
46 packageRoot: options['package-root'],
47 includePrivate: options['include-private'],
48 includeSdk: includeSdk,
49 parseSdk: options['parse-sdk'],
50 introFileName: introduction,
51 out: options['out'],
52 excludeLibraries: excludedLibraries,
53 includeDependentPackages: options['include-dependent-packages'],
54 compile: options['compile'],
55 serve: options['serve'],
56 dartBinary: dartBinary,
57 pubScript: pubScript,
58 noDocs: options['no-docs'],
59 startPage: startPage,
60 indentJSON: indentJSON,
61 sdk: options['sdk']);
62 }
63
64 /**
65 * Print help if we are passed the help option or invalid arguments.
66 */
67 void _printHelpAndExit() {
68 _printDeprecatedMessage();
69 print(_initArgParser().usage);
70 print('Usage: dartdocgen [OPTIONS] fooDir/barFile');
71 exit(0);
72 }
73
74 void _printDeprecatedMessage() {
75 print(
76 '\nDeprecated: please use https://pub.dartlang.org/packages/dartdoc instea d.');
77 print('Dart SDK 1.12 will be the last release to ship with docgen.\n');
78 }
79
80 /**
81 * If the user seems to have given us a single package to document, use some
82 * reasonable arguments for what they probably meant.
83 */
84 bool _singlePackage(List files) {
85 if (files.length != 1) return false;
86 var pubspec = new File(path.join(files.first, 'pubspec.yaml'));
87 if (!pubspec.existsSync()) return false;
88 return true;
89 }
90
91 /**
92 * If we've specified just a package and no other command-line options,
93 * use the single package name as the start page.
94 */
95 String _defaultStartPageFor(files) {
96 var pubspec = new File(path.join(files.first, 'pubspec.yaml'));
97 if (!pubspec.existsSync()) return null;
98 return packageNameFor(files.first);
99 }
100
101 /**
102 * Creates parser for docgen command line arguments.
103 */
104 ArgParser _initArgParser() {
105 var parser = new ArgParser();
106 parser.addFlag('help',
107 abbr: 'h',
108 help: 'Prints help and usage information.',
109 negatable: false, callback: (help) {
110 if (help) _printHelpAndExit();
111 });
112 parser.addFlag('verbose',
113 abbr: 'v',
114 help: 'Output more logging information.',
115 negatable: false, callback: (verbose) {
116 if (verbose) Logger.root.level = Level.FINEST;
117 });
118 parser.addFlag('include-private',
119 help: 'Flag to include private declarations.', negatable: false);
120 parser.addFlag('include-sdk',
121 help: 'Flag to parse SDK Library files.',
122 defaultsTo: false,
123 negatable: true);
124 parser.addFlag('parse-sdk',
125 help: 'Parses the SDK libraries only.',
126 defaultsTo: false,
127 negatable: false);
128 parser.addOption('package-root',
129 help: 'Sets the package root of the library being analyzed.');
130 parser.addFlag('compile',
131 help: 'Clone the documentation viewer repo locally '
132 '(if not already present) and compile with dart2js',
133 defaultsTo: false,
134 negatable: false);
135 parser.addFlag('serve',
136 help: 'Clone the documentation viewer repo locally '
137 '(if not already present), compile with dart2js, '
138 'and start a simple server',
139 defaultsTo: false,
140 negatable: false);
141 parser.addFlag('no-docs',
142 help: 'Do not generate any new documentation',
143 defaultsTo: false,
144 negatable: false);
145 parser.addOption('introduction',
146 help: 'Adds the provided markdown text file as the introduction'
147 ' for the generated documentation.',
148 defaultsTo: '');
149 parser.addOption('out',
150 help: 'The name of the output directory.', defaultsTo: 'docs');
151 parser.addOption('exclude-lib',
152 help: 'Exclude the library by this name from the documentation',
153 allowMultiple: true);
154 parser.addFlag('include-dependent-packages',
155 help: 'Assumes we are documenting a single package and are running '
156 'in the directory with its pubspec. Includes documentation for all '
157 'of its dependent packages.',
158 defaultsTo: true,
159 negatable: true);
160 parser.addOption('sdk', help: 'SDK directory', defaultsTo: null);
161 parser.addOption('start-page',
162 help: 'By default the viewer will start at the SDK introduction page. '
163 'To start at some other page, e.g. for a package, provide the name '
164 'of the package in this argument, e.g. --start-page=intl will make '
165 'the start page of the viewer be the intl package.',
166 defaultsTo: null);
167 parser.addFlag('indent-json',
168 help: 'Indents each level of JSON output by two spaces',
169 defaultsTo: false,
170 negatable: true);
171
172 return parser;
173 }
OLDNEW
« no previous file with comments | « pkg/docgen/README.md ('k') | pkg/docgen/lib/docgen.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698