Chromium Code Reviews| Index: utils/dartdoc/dartdoc.dart |
| diff --git a/utils/dartdoc/dartdoc.dart b/utils/dartdoc/dartdoc.dart |
| index 2ca8cff4932ec32a08d38332a14b3ceb66b6f087..921bb694b434443e50077f6ff9dacf3993d34a22 100644 |
| --- a/utils/dartdoc/dartdoc.dart |
| +++ b/utils/dartdoc/dartdoc.dart |
| @@ -6,6 +6,7 @@ |
| #library('dartdoc'); |
| #import('../../frog/lang.dart'); |
| +#import('../../frog/file_system.dart'); |
| #import('../../frog/file_system_node.dart'); |
| #source('classify.dart'); |
| @@ -35,6 +36,8 @@ int _totalLibraries = 0; |
| int _totalTypes = 0; |
| int _totalMembers = 0; |
| +FileSystem files; |
| + |
| /** |
| * Run this from the frog/samples directory. Before running, you need |
| * to create a docs dir with 'mkdir docs' - since Dart currently doesn't |
| @@ -44,18 +47,29 @@ void main() { |
| // The entrypoint of the library to generate docs for. |
| final libPath = process.argv[2]; |
| - // TODO(rnystrom): Get options and homedir like frog.dart does. |
| - final files = new NodeFileSystem(); |
| + files = new NodeFileSystem(); |
| parseOptions('../../frog', [] /* args */, files); |
| final elapsed = time(() { |
| + _comments = <String, Map<int, String>>{}; |
| + |
| initializeWorld(files); |
| world.processScript(libPath); |
| world.resolveAll(); |
| - _comments = <String, Map<int, String>>{}; |
| + // Clean the output directory. |
| + if (files.fileExists(outdir)) { |
| + files.removeDirectory(outdir, recursive: true); |
| + } |
| + files.createDirectory(outdir, recursive: true); |
| + // Copy over the static files. |
| + for (final file in ['interact.js', 'styles.css']) { |
| + copyStatic(file); |
| + } |
| + |
| + // Generate the docs. |
| for (var library in world.libraries.getValues()) { |
| docLibrary(library); |
| } |
| @@ -67,6 +81,12 @@ void main() { |
| '$_totalMembers members in ${elapsed}msec.'); |
| } |
| +/** Copies the static file at 'static/file' to the output directory. */ |
| +copyStatic(String file) { |
| + var contents = files.readAll(joinPaths('static', file)); |
|
Jacob
2011/11/16 19:59:30
why not use final for this and other local vars th
jimhug
2011/11/17 16:59:44
This is a good topic. I've found myself not doing
Bob Nystrom
2011/11/17 20:44:21
I do the same thing. Lately, my habit has been to
Jacob
2011/11/17 20:54:08
using final for everything at first has worked wel
|
| + files.writeString(joinPaths(outdir, file), contents); |
| +} |
| + |
| num time(callback()) { |
| // Unlike world.withTiming, returns the elapsed time. |
| final watch = new Stopwatch(); |