| OLD | NEW | 
|---|
| 1 // Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file | 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 | 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. | 3 // BSD-style license that can be found in the LICENSE file. | 
| 4 | 4 | 
| 5 import 'dart:io'; | 5 import 'dart:io'; | 
| 6 | 6 | 
| 7 Future<String> getVersion(var rootPath) { | 7 Future<String> getVersion(var rootPath) { | 
| 8   var suffix = Platform.operatingSystem == 'windows' ? '.exe' : ''; | 8   var suffix = Platform.operatingSystem == 'windows' ? '.exe' : ''; | 
| 9   var printVersionScript = rootPath.resolve("tools/print_version.py"); | 9   var printVersionScript = rootPath.resolve("tools/print_version.py"); | 
| 10   return Process.run("python$suffix", | 10   return Process.run("python$suffix", | 
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 54   }); | 54   }); | 
| 55 } | 55 } | 
| 56 | 56 | 
| 57 void writeSnapshotFile(var path, var content) { | 57 void writeSnapshotFile(var path, var content) { | 
| 58     File file = new File(path); | 58     File file = new File(path); | 
| 59     var writer = file.openSync(mode: FileMode.WRITE); | 59     var writer = file.openSync(mode: FileMode.WRITE); | 
| 60     writer.writeStringSync(content); | 60     writer.writeStringSync(content); | 
| 61     writer.close(); | 61     writer.close(); | 
| 62 } | 62 } | 
| 63 | 63 | 
| 64 Future createSnapshot(var dart_file, var packageRoot) { | 64 Future createSnapshot(var dart_file) { | 
| 65   return Process.run(Platform.executable, | 65   return Process.run(Platform.executable, | 
| 66                      ["--package-root=$packageRoot", | 66                      ["--snapshot=$dart_file.snapshot", | 
| 67                       "--snapshot=$dart_file.snapshot", |  | 
| 68                       dart_file]) | 67                       dart_file]) | 
| 69       .then((result) { | 68       .then((result) { | 
| 70         if (result.exitCode != 0) { | 69         if (result.exitCode != 0) { | 
| 71           print("Could not generate snapshot: result code ${result.exitCode}"); | 70           print("Could not generate snapshot: result code ${result.exitCode}"); | 
| 72           print(result.stdout); | 71           print(result.stdout); | 
| 73           print(result.stderr); | 72           print(result.stderr); | 
| 74           throw "Could not generate snapshot"; | 73           throw "Could not generate snapshot"; | 
| 75         } | 74         } | 
| 76       }); | 75       }); | 
| 77 } | 76 } | 
| 78 | 77 | 
| 79 /** | 78 /** | 
| 80  * Takes the following arguments: | 79  * Takes the following arguments: | 
| 81  * --output_dir=val     The full path to the output_dir. | 80  * --output_dir=val     The full path to the output_dir. | 
| 82  * --dart2js_main=val   The path to the dart2js main script relative to root. | 81  * --dart2js_main=val   The path to the dart2js main script relative to root. | 
| 83  * --package-root=val   The package-root used to find packages for the snapshot. |  | 
| 84  */ | 82  */ | 
| 85 void main(List<String> arguments) { | 83 void main(List<String> arguments) { | 
| 86   var validArguments = ["--output_dir", "--dart2js_main", | 84   var validArguments = ["--output_dir", "--dart2js_main"]; | 
| 87                         "--package_root"]; |  | 
| 88   var args = {}; | 85   var args = {}; | 
| 89   for (var argument in arguments) { | 86   for (var argument in arguments) { | 
| 90     var argumentSplit = argument.split("="); | 87     var argumentSplit = argument.split("="); | 
| 91     if (argumentSplit.length != 2) throw "Invalid argument $argument, no ="; | 88     if (argumentSplit.length != 2) throw "Invalid argument $argument, no ="; | 
| 92     if (!validArguments.contains(argumentSplit[0])) { | 89     if (!validArguments.contains(argumentSplit[0])) { | 
| 93       throw "Invalid argument $argument"; | 90       throw "Invalid argument $argument"; | 
| 94     } | 91     } | 
| 95     args[argumentSplit[0].substring(2)] = argumentSplit[1]; | 92     args[argumentSplit[0].substring(2)] = argumentSplit[1]; | 
| 96   } | 93   } | 
| 97   if (!args.containsKey("dart2js_main")) throw "Please specify dart2js_main"; | 94   if (!args.containsKey("dart2js_main")) throw "Please specify dart2js_main"; | 
| 98   if (!args.containsKey("output_dir")) throw "Please specify output_dir"; | 95   if (!args.containsKey("output_dir")) throw "Please specify output_dir"; | 
| 99   if (!args.containsKey("package_root")) throw "Please specify package_root"; |  | 
| 100 | 96 | 
| 101   var scriptFile = Uri.base.resolveUri(Platform.script); | 97   var scriptFile = Uri.base.resolveUri(Platform.script); | 
| 102   var path = scriptFile.resolve("."); | 98   var path = scriptFile.resolve("."); | 
| 103   var rootPath = path.resolve("../.."); | 99   var rootPath = path.resolve("../.."); | 
| 104   getSnapshotGenerationFile(args, rootPath).then((result) { | 100   getSnapshotGenerationFile(args, rootPath).then((result) { | 
| 105     var wrapper = "${args['output_dir']}/utils_wrapper.dart"; | 101     var wrapper = "${args['output_dir']}/utils_wrapper.dart"; | 
| 106     writeSnapshotFile(wrapper, result); | 102     writeSnapshotFile(wrapper, result); | 
| 107     createSnapshot(wrapper, args["package_root"]); | 103     createSnapshot(wrapper); | 
| 108   }); | 104   }); | 
| 109 | 105 | 
| 110   getDart2jsSnapshotGenerationFile(args, rootPath).then((result) { | 106   getDart2jsSnapshotGenerationFile(args, rootPath).then((result) { | 
| 111     var wrapper = "${args['output_dir']}/dart2js.dart"; | 107     var wrapper = "${args['output_dir']}/dart2js.dart"; | 
| 112     writeSnapshotFile(wrapper, result); | 108     writeSnapshotFile(wrapper, result); | 
| 113     createSnapshot(wrapper, args["package_root"]); | 109     createSnapshot(wrapper); | 
| 114   }); | 110   }); | 
| 115 | 111 | 
| 116 } | 112 } | 
| OLD | NEW | 
|---|