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 /// Helper functionality to make working with IO easier. | 5 /// Helper functionality to make working with IO easier. |
6 library pub.io; | 6 library pub.io; |
7 | 7 |
8 import 'dart:async'; | 8 import 'dart:async'; |
9 import 'dart:collection'; | 9 import 'dart:collection'; |
10 import 'dart:convert'; | 10 import 'dart:convert'; |
(...skipping 842 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
853 var tempDir = createSystemTempDir(); | 853 var tempDir = createSystemTempDir(); |
854 return new Future.sync(() => fn(tempDir)) | 854 return new Future.sync(() => fn(tempDir)) |
855 .whenComplete(() => deleteEntry(tempDir)); | 855 .whenComplete(() => deleteEntry(tempDir)); |
856 }); | 856 }); |
857 } | 857 } |
858 | 858 |
859 /// Binds an [HttpServer] to [host] and [port]. | 859 /// Binds an [HttpServer] to [host] and [port]. |
860 /// | 860 /// |
861 /// If [host] is "localhost", this will automatically listen on both the IPv4 | 861 /// If [host] is "localhost", this will automatically listen on both the IPv4 |
862 /// and IPv6 loopback addresses. | 862 /// and IPv6 loopback addresses. |
863 Future<HttpServer> bindServer(String host, int port) { | 863 Future<HttpServer> bindServer(String host, int port) async { |
864 if (host == 'localhost') return HttpMultiServer.loopback(port); | 864 var server = host == 'localhost' |
865 return HttpServer.bind(host, port); | 865 ? await HttpMultiServer.loopback(port) |
| 866 : await HttpServer.bind(host, port); |
| 867 server.autoCompress = true; |
| 868 return server; |
866 } | 869 } |
867 | 870 |
868 /// Extracts a `.tar.gz` file from [stream] to [destination]. | 871 /// Extracts a `.tar.gz` file from [stream] to [destination]. |
869 Future extractTarGz(Stream<List<int>> stream, String destination) async { | 872 Future extractTarGz(Stream<List<int>> stream, String destination) async { |
870 log.fine("Extracting .tar.gz stream to $destination."); | 873 log.fine("Extracting .tar.gz stream to $destination."); |
871 | 874 |
872 if (Platform.operatingSystem == "windows") { | 875 if (Platform.operatingSystem == "windows") { |
873 return await _extractTarGzWindows(stream, destination); | 876 return await _extractTarGzWindows(stream, destination); |
874 } | 877 } |
875 | 878 |
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1060 | 1063 |
1061 // TODO(rnystrom): Remove this and change to returning one string. | 1064 // TODO(rnystrom): Remove this and change to returning one string. |
1062 static List<String> _toLines(String output) { | 1065 static List<String> _toLines(String output) { |
1063 var lines = splitLines(output); | 1066 var lines = splitLines(output); |
1064 if (!lines.isEmpty && lines.last == "") lines.removeLast(); | 1067 if (!lines.isEmpty && lines.last == "") lines.removeLast(); |
1065 return lines; | 1068 return lines; |
1066 } | 1069 } |
1067 | 1070 |
1068 bool get success => exitCode == exit_codes.SUCCESS; | 1071 bool get success => exitCode == exit_codes.SUCCESS; |
1069 } | 1072 } |
OLD | NEW |