Roll back 16364004 and 16206027.

Review URL: https://codereview.chromium.org//16387004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23625 260f80e4-7a28-3924-810f-c04153c831b5
diff --git a/sdk/bin/dartdoc b/sdk/bin/dartdoc
index f95cb16..3f22367 100755
--- a/sdk/bin/dartdoc
+++ b/sdk/bin/dartdoc
@@ -18,17 +18,9 @@
 fi
 
 unset SNAPSHOT
-
-SNAPSHOT="$BIN_DIR/snapshots/utils_wrapper.dart.snapshot"
-
-if test -f $SNAPSHOT; then
+if test -f "$BIN_DIR/../lib/_internal/dartdoc/bin/dartdoc.dart.snapshot"; then
   # TODO(ahe): Remove the following line when we are relatively sure it works.
-  echo Using snapshot $SNAPSHOT 1>&2
-  exec "$BIN_DIR"/dart --heap_growth_rate=32 \
-      "--package-root=$BIN_DIR/../packages/" $SNAPSHOT dartdoc $COLORS \
-      "--package-root=$BIN_DIR/../packages/" "--library-root=$BIN_DIR/.." "$@"
-else
-  exec "$BIN_DIR"/dart --heap_growth_rate=32 \
-      "--package-root=$BIN_DIR/../packages/" \
-      "$BIN_DIR/../lib/_internal/dartdoc/bin/dartdoc.dart" $COLORS "$@"
+  echo Using snapshot "$BIN_DIR/../lib/_internal/dartdoc/bin/dartdoc.dart.snapshot" 1>&2
+  SNAPSHOT="--use-script-snapshot=$BIN_DIR/../lib/_internal/dartdoc/bin/dartdoc.dart.snapshot"
 fi
+exec "$BIN_DIR"/dart --heap_growth_rate=32 "--package-root=$BIN_DIR/../packages/" $SNAPSHOT "$BIN_DIR/../lib/_internal/dartdoc/bin/dartdoc.dart" "--package-root=$BIN_DIR/../packages/" $COLORS "$@"
diff --git a/sdk/lib/_internal/dartdoc/bin/dartdoc.dart b/sdk/lib/_internal/dartdoc/bin/dartdoc.dart
index dd81d07..d9fe3d9 100644
--- a/sdk/lib/_internal/dartdoc/bin/dartdoc.dart
+++ b/sdk/lib/_internal/dartdoc/bin/dartdoc.dart
@@ -29,18 +29,10 @@
  * Run this from the `lib/_internal/dartdoc` directory.
  */
 main() {
-  mainWithOptions(new Options());
-}
-
-/**
- * We use this to include dartdoc in a single snapshot with dart2js.
- * (They share 90% of the code)
- */
-mainWithOptions(Options options) {
   // Need this because ArgParser.getUsage doesn't show command invocation.
   final USAGE = 'Usage dartdoc [options] <entrypoint(s)>\n[options] include:';
 
-  final args = options.arguments;
+  final args = new Options().arguments;
 
   final dartdoc = new Dartdoc();
 
@@ -248,8 +240,8 @@
     // TODO(amouravski): move compileScript out and pre-generate the client
     // scripts. This takes a long time and the js hardly ever changes.
     .then((_) => compileScript(dartdoc.mode, dartdoc.outputDir, libPath))
-    .then((_) => copyDirectory(libPath.append('lib/_internal/dartdoc/static'),
-                               dartdoc.outputDir))
+    .then((_) => copyDirectory(scriptDir.append('../static'),
+          dartdoc.outputDir))
     .then((_) {
       print(dartdoc.status);
       if (dartdoc.totals == 0) {
diff --git a/sdk/lib/_internal/dartdoc/lib/dartdoc.dart b/sdk/lib/_internal/dartdoc/lib/dartdoc.dart
index 17b84ba..dfc0f45 100644
--- a/sdk/lib/_internal/dartdoc/lib/dartdoc.dart
+++ b/sdk/lib/_internal/dartdoc/lib/dartdoc.dart
@@ -319,12 +319,6 @@
   /** The file currently being written to. */
   StringBuffer _file;
 
-  /**
-   * The temporary directory used for this instance of Dartdoc.
-   * Call [cleanup] to delete it.
-   */
-  Directory _tempDir;
-
   int _totalLibraries = 0;
   int _totalTypes = 0;
   int _totalMembers = 0;
@@ -789,49 +783,32 @@
     endFile();
   }
 
-  /// Whether dartdoc is running from within the Dart SDK or the
-  /// Dart source repository.
-  bool get runningFromSdk =>
-    pathos.extension(new Options().script) == '.snapshot';
-
-  /// Gets the path to the root directory of the SDK.
-  String get rootDirectory =>
-    pathos.dirname(pathos.dirname(new Options().executable));
-
-  /// Gets the path to the dartdoc directory normalized for running in different
-  /// places.
-  String get normalizedDartdocPath => runningFromSdk ?
-      pathos.join(rootDirectory, 'lib', '_internal', 'dartdoc') :
-      dartdocPath.toString();
-
-  /// The path to the temporary directory in the SDK.
-  // TODO(amouravski): Remove this and use a REAL temporary directory.
-  String get tempPath => pathos.join(normalizedDartdocPath, 'tmp');
-
   void docNavigationDart() {
-    _tempDir = new Directory(tempPath);
-    if (!_tempDir.existsSync()) {
+    final dir = new Directory.fromPath(tmpPath);
+    if (!dir.existsSync()) {
       // TODO(3914): Hack to avoid 'file already exists' exception
       // thrown due to invalid result from dir.existsSync() (probably due to
       // race conditions).
       try {
-        _tempDir.createSync();
+        dir.createSync();
       } on DirectoryIOException catch (e) {
         // Ignore.
       }
     }
     String jsonString = json.stringify(createNavigationInfo());
     String dartString = jsonString.replaceAll(r"$", r"\$");
-
-    var navPath = pathos.join(tempPath, 'nav.dart');
-    writeString(new File(navPath),
+    final filePath = tmpPath.append('nav.dart');
+    writeString(new File.fromPath(filePath),
         '''part of client;
-        get json => $dartString;''');
+           get json => $dartString;''');
   }
 
+  Path get tmpPath => dartdocPath.append('tmp');
+
   void cleanup() {
-    if (_tempDir.existsSync()) {
-      _tempDir.deleteSync(recursive: true);
+    final dir = new Directory.fromPath(tmpPath);
+    if (dir.existsSync()) {
+      dir.deleteSync(recursive: true);
     }
   }
 
diff --git a/utils/compiler/compiler.gyp b/utils/compiler/compiler.gyp
index 8c95316..1755ce2 100644
--- a/utils/compiler/compiler.gyp
+++ b/utils/compiler/compiler.gyp
@@ -19,8 +19,7 @@
           'inputs': [
             '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)dart<(EXECUTABLE_SUFFIX)',
             '../../sdk/lib/_internal/libraries.dart',
-            '<!@(["python", "../../tools/list_files.py", "\\.dart$", "../../sdk/lib/_internal/compiler", "../../runtime/lib", "../../sdk/lib/_internal/dartdoc"])',
-            'create_snapshot.dart',
+            '<!@(["python", "../../tools/list_files.py", "\\.dart$", "../../sdk/lib/_internal/compiler", "../../runtime/lib"])',
           ],
           'outputs': [
             '<(SHARED_INTERMEDIATE_DIR)/utils_wrapper.dart.snapshot',
@@ -30,8 +29,6 @@
             'create_snapshot.dart',
             '--output_dir=<(SHARED_INTERMEDIATE_DIR)',
             '--dart2js_main=sdk/lib/_internal/compiler/implementation/dart2js.dart',
-            '--dartdoc_main=sdk/lib/_internal/dartdoc/bin/dartdoc.dart',
-            '--package_root=<(PRODUCT_DIR)/packages/',
           ],
         },
       ],
diff --git a/utils/compiler/create_snapshot.dart b/utils/compiler/create_snapshot.dart
index d3a460e..c5a8af4 100644
--- a/utils/compiler/create_snapshot.dart
+++ b/utils/compiler/create_snapshot.dart
@@ -22,13 +22,11 @@
 
 Future<String> getSnapshotGenerationFile(var options, var args, var rootPath) {
   var dart2js = rootPath.append(args["dart2js_main"]);
-  var dartdoc = rootPath.append(args["dartdoc_main"]);
 
   return getVersion(options, rootPath).then((version) {
     var snapshotGenerationText =
 """
 import '${dart2js}' as dart2jsMain;
-import '${dartdoc}' as dartdocMain;
 import 'dart:io';
 
 void main() {
@@ -38,8 +36,6 @@
   if (tool == "dart2js") {
     dart2jsMain.BUILD_ID = "$version";
     dart2jsMain.mainWithErrorHandler(options);
-  } else if (tool == "dartdoc") {
-    dartdocMain.mainWithOptions(options);
   }
 }
 
@@ -55,10 +51,9 @@
     writer.close();
 }
 
-Future createSnapshot(var options, var dart_file, var packageRoot) {
+Future createSnapshot(var options, var dart_file) {
   return Process.run(options.executable,
-                     ["--package-root=$packageRoot",
-                      "--generate-script-snapshot=$dart_file.snapshot",
+                     ["--generate-script-snapshot=$dart_file.snapshot",
                       dart_file])
       .then((result) {
         if (result.exitCode != 0) {
@@ -74,8 +69,7 @@
  */
 void main() {
   Options options = new Options();
-  var validArguments = ["--output_dir", "--dart2js_main", "--dartdoc_main",
-                        "--package_root"];
+  var validArguments = ["--output_dir", "--dart2js_main"];
   var args = {};
   for (var argument in options.arguments) {
     var argumentSplit = argument.split("=");
@@ -86,9 +80,7 @@
     args[argumentSplit[0].substring(2)] = argumentSplit[1];
   }
   if (!args.containsKey("dart2js_main")) throw "Please specify dart2js_main";
-  if (!args.containsKey("dartdoc_main")) throw "Please specify dartdoc_main";
   if (!args.containsKey("output_dir")) throw "Please specify output_dir";
-  if (!args.containsKey("package_root")) throw "Please specify package_root";
 
   var scriptFile = new File(new File(options.script).fullPathSync());
   var path = new Path(scriptFile.directory.path);
@@ -96,6 +88,6 @@
   getSnapshotGenerationFile(options, args, rootPath).then((result) {
     var wrapper = "${args['output_dir']}/utils_wrapper.dart";
     writeSnapshotFile(wrapper, result);
-    createSnapshot(options, wrapper, args["package_root"]);
+    createSnapshot(options, wrapper);
   });
 }