OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 'package:expect/expect.dart'; |
5 import "dart:io"; | 6 import "dart:io"; |
6 | 7 |
7 main() { | 8 main() { |
8 if (Platform.operatingSystem != 'windows') return; | 9 if (Platform.operatingSystem != 'windows') return; |
9 var tempDir = new Directory('').createTempSync(); | 10 var tempDir = new Directory('').createTempSync(); |
10 var funkyDir = new Directory("${tempDir.path}/å"); | 11 var funkyDir = new Directory("${tempDir.path}/å"); |
11 funkyDir.createSync(); | 12 funkyDir.createSync(); |
12 var funkyFile = new File('${funkyDir.path}/funky.bat'); | 13 var funkyFile = new File('${funkyDir.path}/funky.bat'); |
13 funkyFile.writeAsStringSync(""" | 14 funkyFile.writeAsStringSync(""" |
14 @echo off | 15 @echo off |
15 set SCRIPTDIR=%~dp0 | 16 set SCRIPTDIR=%~dp0 |
16 %1 %2 | 17 %1 %2 |
17 """); | 18 """); |
18 var options = new Options(); | 19 var options = new Options(); |
19 var dart = options.executable; | 20 var dart = options.executable; |
20 var scriptDir = new Path(options.script).directoryPath; | 21 var scriptDir = new Path(options.script).directoryPath; |
21 var script = scriptDir.append('windows_environment_script.dart'); | 22 var script = scriptDir.append('windows_environment_script.dart'); |
22 Process.run('cmd', | 23 Process.run('cmd', |
23 ['/c', funkyFile.path, dart, script.toNativePath()]).then((p) { | 24 ['/c', funkyFile.path, dart, script.toNativePath()]).then((p) { |
24 if (0 != p.exitCode) throw "Exit code not 0"; | 25 if (0 != p.exitCode) throw "Exit code not 0"; |
25 tempDir.deleteSync(recursive: true); | 26 tempDir.deleteSync(recursive: true); |
26 }); | 27 }); |
27 } | 28 } |
OLD | NEW |