Skip to content

some cleanup to the stdout messages we print #1413

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
May 11, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions bin/dartdoc.dart
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ main(List<String> arguments) async {

Directory sdkDir = getSdkDir();
if (sdkDir == null) {
stderr.write(" Error: unable to locate the Dart SDK.");
stderr.writeln(" Error: unable to locate the Dart SDK.");
exit(1);
}

Expand All @@ -55,14 +55,14 @@ main(List<String> arguments) async {

var readme = args['sdk-readme'];
if (readme != null && !(new File(readme).existsSync())) {
stderr.write(
stderr.writeln(
" fatal error: unable to locate the SDK description file at $readme.");
exit(1);
}

Directory inputDir = new Directory(args['input']);
if (!inputDir.existsSync()) {
stderr.write(
stderr.writeln(
" fatal error: unable to locate the input directory at ${inputDir.path}.");
exit(1);
}
Expand All @@ -77,7 +77,7 @@ main(List<String> arguments) async {
args['header'].map(_resolveTildePath).toList() as List<String>;
for (String headerFilePath in headerFilePaths) {
if (!new File(headerFilePath).existsSync()) {
stderr.write(
stderr.writeln(
" fatal error: unable to locate header file: ${headerFilePath}.");
exit(1);
}
Expand All @@ -87,7 +87,7 @@ main(List<String> arguments) async {
args['footer'].map(_resolveTildePath).toList() as List<String>;
for (String footerFilePath in footerFilePaths) {
if (!new File(footerFilePath).existsSync()) {
stderr.write(
stderr.writeln(
" fatal error: unable to locate footer file: ${footerFilePath}.");
exit(1);
}
Expand All @@ -97,7 +97,7 @@ main(List<String> arguments) async {
args['footer-text'].map(_resolveTildePath).toList() as List<String>;
for (String footerFilePath in footerTextFilePaths) {
if (!new File(footerFilePath).existsSync()) {
stderr.write(
stderr.writeln(
" fatal error: unable to locate footer-text file: ${footerFilePath}.");
exit(1);
}
Expand All @@ -111,7 +111,7 @@ main(List<String> arguments) async {

if (args.rest.isNotEmpty) {
var unknownArgs = args.rest.join(' ');
stderr.write(
stderr.writeln(
' fatal error: detected unknown command-line argument(s): $unknownArgs');
_printUsageAndExit(parser, exitCode: 1);
}
Expand Down
32 changes: 19 additions & 13 deletions lib/dartdoc.dart
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import 'package:analyzer/src/generated/java_io.dart';
import 'package:analyzer/src/generated/sdk.dart';
import 'package:analyzer/src/generated/source.dart';
import 'package:analyzer/src/generated/source_io.dart';
import 'package:dartdoc/src/utils.dart';
import 'package:html/dom.dart' show Element, Document;
import 'package:html/parser.dart' show parse;
import 'package:package_config/discovery.dart' as package_config;
Expand Down Expand Up @@ -173,9 +174,6 @@ class DartDoc {
}
package = new Package(libraries, packageMeta, warningOptions);

print(
'\ngenerating docs for libraries ${package.libraries.map((Library l) => l.name).join(', ')}\n');

// Go through docs of every model element in package to prebuild the macros index
// TODO(jcollins-g): move index building into a cached-on-demand generation
// like most other bits in [Package].
Expand All @@ -189,14 +187,21 @@ class DartDoc {
writtenFiles.addAll(generator.writtenFiles.map(path.normalize));
}

verifyLinks(package, outputDir.path);

double seconds = _stopwatch.elapsedMilliseconds / 1000.0;
print(
"\nDocumented ${package.libraries.length} librar${package.libraries.length == 1 ? 'y' : 'ies'} "
"in ${seconds.toStringAsFixed(1)} seconds.");
print(
"Finished with: ${package.packageWarningCounter.warningCount} warnings, ${package.packageWarningCounter.errorCount} errors");
"documented ${package.libraries.length} librar${package.libraries.length == 1 ? 'y' : 'ies'} "
"in ${seconds.toStringAsFixed(1)} seconds");
print('');

verifyLinks(package, outputDir.path);
int warnings = package.packageWarningCounter.warningCount;
int errors = package.packageWarningCounter.errorCount;
if (warnings == 0 && errors == 0) {
print("no issues found");
} else {
print("found ${warnings} ${pluralize('warning', warnings)} "
"and ${errors} ${pluralize('error', errors)}");
}

if (package.libraries.isEmpty) {
throw new DartDocFailure(
Expand Down Expand Up @@ -351,7 +356,7 @@ class DartDoc {
final Set<String> visited = new Set();
final String start = 'index.html';
visited.add(start);
stdout.write('\nvalidating docs');
print('validating docs...');
_doCheck(package, origin, visited, start);
_doOrphanCheck(package, origin, visited);
}
Expand Down Expand Up @@ -510,9 +515,10 @@ class DartDoc {
..sort();

double seconds = _stopwatch.elapsedMilliseconds / 1000.0;
print("Parsed ${libraries.length} "
"file${libraries.length == 1 ? '' : 's'} in "
"${seconds.toStringAsFixed(1)} seconds.\n");
print("parsed ${libraries.length} ${pluralize('file', libraries.length)} "
"in ${seconds.toStringAsFixed(1)} seconds");
print('');
_stopwatch.reset();

if (errors.isNotEmpty) {
errors.forEach(print);
Expand Down
7 changes: 2 additions & 5 deletions lib/src/html/html_generator_instance.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

import 'dart:async' show Future, StreamController;
import 'dart:convert' show JsonEncoder;
import 'dart:io' show Directory, File, stdout;
import 'dart:io' show Directory, File;
import 'dart:typed_data' show Uint8List;

import 'package:collection/collection.dart' show compareNatural;
Expand Down Expand Up @@ -178,16 +178,13 @@ class HtmlGeneratorInstance implements HtmlOptions {
}

void generatePackage() {
stdout.write('\ndocumenting ${package.name}');

TemplateData data = new PackageTemplateData(this, package, useCategories);

_build('index.html', _templates.indexTemplate, data);
}

void generateLibrary(Package package, Library lib) {
stdout
.write('\ngenerating docs for library ${lib.name} from ${lib.path}...');
print('generating docs for library ${lib.name} from ${lib.path}...');
if (!lib.isAnonymous && !lib.hasDocumentation) {
package.warnOnElement(lib, PackageWarning.noLibraryLevelDocs);
}
Expand Down
4 changes: 2 additions & 2 deletions lib/src/model.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2849,7 +2849,7 @@ class PackageWarningCounter {
} else {
if (options.asErrors.contains(kind)) toWrite = "error: ${fullMessage}";
}
if (toWrite != null) stderr.write("\n ${toWrite}");
if (toWrite != null) print(" ${toWrite}");
}

/// Returns true if we've already warned for this.
Expand Down Expand Up @@ -3057,7 +3057,7 @@ class Package implements Nameable, Documentable {
break;
case PackageWarning.unknownFile:
warningMessage =
'dartdoc detected an unknown file in the doc tree: ${message}';
'dartdoc detected an unknown file in the doc tree: ${message}';
break;
case PackageWarning.typeAsHtml:
// The message for this warning can contain many punctuation and other symbols,
Expand Down
2 changes: 2 additions & 0 deletions lib/src/utils.dart
Original file line number Diff line number Diff line change
Expand Up @@ -49,3 +49,5 @@ String truncateString(String str, int length) {
return str;
}
}

String pluralize(String word, int count) => count == 1 ? word : '${word}s';