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 // Utility script to echo stdin to stdout or stderr or both. | 5 // Utility script to echo stdin to stdout or stderr or both. |
6 | 6 |
7 import "dart:io"; | 7 import "dart:io"; |
8 | 8 |
9 main() { | 9 main() { |
10 var options = new Options(); | 10 var options = new Options(); |
11 if (stdioType(stdin) is !StdioType) exit(1); | 11 if (stdioType(stdin) is !StdioType) exit(1); |
12 if (stdioType(stdout) is !StdioType) exit(1); | 12 if (stdioType(stdout) is !StdioType) exit(1); |
13 if (stdioType(stderr) is !StdioType) exit(1); | 13 if (stdioType(stderr) is !StdioType) exit(1); |
14 if (stdioType(stdin).name != options.arguments[1]) { | 14 if (stdioType(stdin).name != options.arguments[1]) { |
15 throw stdioType(stdin).name; | 15 throw stdioType(stdin).name; |
16 } | 16 } |
17 if (stdioType(stdout).name != options.arguments[2]) { | 17 if (stdioType(stdout).name != options.arguments[2]) { |
18 throw stdioType(stdout).name; | 18 throw stdioType(stdout).name; |
19 } | 19 } |
20 if (stdioType(stderr).name != options.arguments[3]) { | 20 if (stdioType(stderr).name != options.arguments[3]) { |
21 throw stdioType(stderr).name; | 21 throw stdioType(stderr).name; |
22 } | 22 } |
23 if (options.arguments.length > 0) { | 23 if (options.arguments.length > 0) { |
24 if (options.arguments[0] == "0") { | 24 if (options.arguments[0] == "0") { |
25 stdin.pipe(stdout); | 25 stdin.pipe(stdout); |
26 } else if (options.arguments[0] == "1") { | 26 } else if (options.arguments[0] == "1") { |
27 stdin.pipe(stderr); | 27 stdin.pipe(stderr); |
28 } else if (options.arguments[0] == "2") { | 28 } else if (options.arguments[0] == "2") { |
29 stdin.listen((data) { | 29 stdin.listen((data) { |
30 stdout.writeBytes(data); | 30 stdout.add(data); |
31 stderr.writeBytes(data); | 31 stderr.add(data); |
32 }); | 32 }); |
33 } | 33 } |
34 } | 34 } |
35 } | 35 } |
OLD | NEW |