| // 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. | |
| import 'dart:async'; | |
| import '../io.dart'; | |
| import '../path.dart'; | |
| import '../validator.dart'; | |
| /// Validates that a package doesn't contain compiled Dartdoc output. | |
| class CompiledDartdocValidator extends Validator { | |
| @override | |
| Future validate() { | |
| return Future.sync(() { | |
| for (var entry in files) { | |
| if (p.basename(entry) != 'nav.json') continue; | |
| final dir = p.dirname(entry); | |
| // Look for tell-tale Dartdoc output files all in the same directory. | |
| final files = [ | |
| entry, | |
| p.join(dir, 'index.html'), | |
| p.join(dir, 'styles.css'), | |
| p.join(dir, 'dart-logo-small.png'), | |
| p.join(dir, 'client-live-nav.js'), | |
| ]; | |
| if (files.every(fileExists)) { | |
| warnings.add( | |
| 'Avoid putting generated documentation in ' | |
| '${p.relative(dir)}.\n' | |
| 'Generated documentation bloats the package with redundant ' | |
| 'data.', | |
| ); | |
| } | |
| } | |
| }); | |
| } | |
| } |