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 io; | 6 library io; |
7 | 7 |
8 import 'dart:async'; | 8 import 'dart:async'; |
9 import 'dart:io'; | 9 import 'dart:io'; |
10 import 'dart:isolate'; | 10 import 'dart:isolate'; |
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
121 /// Creates a temp directory whose name will be based on [dir] with a unique | 121 /// Creates a temp directory whose name will be based on [dir] with a unique |
122 /// suffix appended to it. If [dir] is not provided, a temp directory will be | 122 /// suffix appended to it. If [dir] is not provided, a temp directory will be |
123 /// created in a platform-dependent temporary location. Returns the path of the | 123 /// created in a platform-dependent temporary location. Returns the path of the |
124 /// created directory. | 124 /// created directory. |
125 String createTempDir([dir = '']) { | 125 String createTempDir([dir = '']) { |
126 var tempDir = new Directory(dir).createTempSync(); | 126 var tempDir = new Directory(dir).createTempSync(); |
127 log.io("Created temp directory ${tempDir.path}"); | 127 log.io("Created temp directory ${tempDir.path}"); |
128 return tempDir.path; | 128 return tempDir.path; |
129 } | 129 } |
130 | 130 |
| 131 // TODO(nweiz): Remove this when issue 9252 is fixed. |
131 /// Asynchronously recursively deletes [dir]. Returns a [Future] that completes | 132 /// Asynchronously recursively deletes [dir]. Returns a [Future] that completes |
132 /// when the deletion is done. | 133 /// when the deletion is done. |
133 Future<String> deleteDir(String dir) { | 134 Future<String> deleteDir(String dir) { |
134 return _attemptRetryable(() => log.ioAsync("delete directory $dir", | 135 return _attemptRetryable(() => log.ioAsync("delete directory $dir", |
135 new Directory(dir).delete(recursive: true).then((_) => dir))); | 136 new Directory(dir).delete(recursive: true).then((_) => dir))); |
136 } | 137 } |
137 | 138 |
138 /// Asynchronously lists the contents of [dir]. If [recursive] is `true`, lists | 139 /// Asynchronously lists the contents of [dir]. If [recursive] is `true`, lists |
139 /// subdirectory contents (defaults to `false`). If [includeHiddenFiles] is | 140 /// subdirectory contents (defaults to `false`). If [includeHiddenFiles] is |
140 /// `true`, includes files and directories beginning with `.` (defaults to | 141 /// `true`, includes files and directories beginning with `.` (defaults to |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
220 // If there is a non-directory there (file or symlink), delete it. | 221 // If there is a non-directory there (file or symlink), delete it. |
221 deleteFile(dir); | 222 deleteFile(dir); |
222 return createDir(dir); | 223 return createDir(dir); |
223 } | 224 } |
224 | 225 |
225 // Just create it. | 226 // Just create it. |
226 return createDir(dir); | 227 return createDir(dir); |
227 }); | 228 }); |
228 } | 229 } |
229 | 230 |
| 231 // TODO(nweiz): remove this when issue 9253 is fixed. |
230 /// Renames (i.e. moves) the directory [from] to [to]. Returns a [Future] with | 232 /// Renames (i.e. moves) the directory [from] to [to]. Returns a [Future] with |
231 /// the destination directory. | 233 /// the destination directory. |
232 Future<String> renameDir(String from, String to) { | 234 Future<String> renameDir(String from, String to) { |
233 log.io("Renaming directory $from to $to."); | 235 log.io("Renaming directory $from to $to."); |
234 | 236 |
235 return _attemptRetryable(() => new Directory(from).rename(to)).then((dir) { | 237 return _attemptRetryable(() => new Directory(from).rename(to)).then((dir) { |
236 log.fine("Renamed directory $from to $to."); | 238 log.fine("Renamed directory $from to $to."); |
237 return to; | 239 return to; |
238 }); | 240 }); |
239 } | 241 } |
(...skipping 570 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
810 const PubProcessResult(this.stdout, this.stderr, this.exitCode); | 812 const PubProcessResult(this.stdout, this.stderr, this.exitCode); |
811 | 813 |
812 bool get success => exitCode == 0; | 814 bool get success => exitCode == 0; |
813 } | 815 } |
814 | 816 |
815 /// Gets a [Uri] for [uri], which can either already be one, or be a [String]. | 817 /// Gets a [Uri] for [uri], which can either already be one, or be a [String]. |
816 Uri _getUri(uri) { | 818 Uri _getUri(uri) { |
817 if (uri is Uri) return uri; | 819 if (uri is Uri) return uri; |
818 return Uri.parse(uri); | 820 return Uri.parse(uri); |
819 } | 821 } |
OLD | NEW |