| 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) { | |
| 65 return Process.run(Platform.executable, | |
| 66 ["--packages=../../.packages", | |
| 67 "--snapshot=$dart_file.snapshot", | |
| 68 dart_file]) | |
| 69 .then((result) { | |
| 70 if (result.exitCode != 0) { | |
| 71 print("Could not generate snapshot: result code ${result.exitCode}"); | |
| 72 print(result.stdout); | |
| 73 print(result.stderr); | |
| 74 throw "Could not generate snapshot"; | |
| 75 } | |
| 76 }); | |
| 77 } | |
| 78 | |
| 79 /** | 64 /** |
| 80 * Takes the following arguments: | 65 * Takes the following arguments: |
| 81 * --output_dir=val The full path to the output_dir. | 66 * --output_dir=val The full path to the output_dir. |
| 82 * --dart2js_main=val The path to the dart2js main script relative to root. | 67 * --dart2js_main=val The path to the dart2js main script relative to root. |
| 83 */ | 68 */ |
| 84 void main(List<String> arguments) { | 69 void main(List<String> arguments) { |
| 85 var validArguments = ["--output_dir", "--dart2js_main"]; | 70 var validArguments = ["--output_dir", "--dart2js_main"]; |
| 86 var args = {}; | 71 var args = {}; |
| 87 for (var argument in arguments) { | 72 for (var argument in arguments) { |
| 88 var argumentSplit = argument.split("="); | 73 var argumentSplit = argument.split("="); |
| 89 if (argumentSplit.length != 2) throw "Invalid argument $argument, no ="; | 74 if (argumentSplit.length != 2) throw "Invalid argument $argument, no ="; |
| 90 if (!validArguments.contains(argumentSplit[0])) { | 75 if (!validArguments.contains(argumentSplit[0])) { |
| 91 throw "Invalid argument $argument"; | 76 throw "Invalid argument $argument"; |
| 92 } | 77 } |
| 93 args[argumentSplit[0].substring(2)] = argumentSplit[1]; | 78 args[argumentSplit[0].substring(2)] = argumentSplit[1]; |
| 94 } | 79 } |
| 95 if (!args.containsKey("dart2js_main")) throw "Please specify dart2js_main"; | 80 if (!args.containsKey("dart2js_main")) throw "Please specify dart2js_main"; |
| 96 if (!args.containsKey("output_dir")) throw "Please specify output_dir"; | 81 if (!args.containsKey("output_dir")) throw "Please specify output_dir"; |
| 97 | 82 |
| 98 var scriptFile = Uri.base.resolveUri(Platform.script); | 83 var scriptFile = Uri.base.resolveUri(Platform.script); |
| 99 var path = scriptFile.resolve("."); | 84 var path = scriptFile.resolve("."); |
| 100 var rootPath = path.resolve("../.."); | 85 var rootPath = path.resolve("../.."); |
| 101 getSnapshotGenerationFile(args, rootPath).then((result) { | 86 getSnapshotGenerationFile(args, rootPath).then((result) { |
| 102 var wrapper = "${args['output_dir']}/utils_wrapper.dart"; | 87 var wrapper = "${args['output_dir']}/utils_wrapper.dart"; |
| 103 writeSnapshotFile(wrapper, result); | 88 writeSnapshotFile(wrapper, result); |
| 104 createSnapshot(wrapper); | |
| 105 }); | 89 }); |
| 106 | 90 |
| 107 getDart2jsSnapshotGenerationFile(args, rootPath).then((result) { | 91 getDart2jsSnapshotGenerationFile(args, rootPath).then((result) { |
| 108 var wrapper = "${args['output_dir']}/dart2js.dart"; | 92 var wrapper = "${args['output_dir']}/dart2js.dart"; |
| 109 writeSnapshotFile(wrapper, result); | 93 writeSnapshotFile(wrapper, result); |
| 110 createSnapshot(wrapper); | |
| 111 }); | 94 }); |
| 112 | |
| 113 } | 95 } |
| OLD | NEW |