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 /** | 5 /** |
6 * Helper functionality to make working with IO easier. | 6 * Helper functionality to make working with IO easier. |
7 */ | 7 */ |
8 library io; | 8 library io; |
9 | 9 |
10 import 'dart:io'; | 10 import 'dart:io'; |
(...skipping 355 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
366 printError( | 366 printError( |
367 'Warning: Package "$name" does not have a "lib" directory.'); | 367 'Warning: Package "$name" does not have a "lib" directory.'); |
368 } | 368 } |
369 | 369 |
370 return new Future.immediate(to); | 370 return new Future.immediate(to); |
371 } | 371 } |
372 }); | 372 }); |
373 }); | 373 }); |
374 } | 374 } |
375 | 375 |
376 /** | 376 /// Given [entry] which may be a [String], [File], or [Directory] relative to |
377 * Given [entry] which may be a [String], [File], or [Directory] relative to | 377 /// the current working directory, returns its full canonicalized path. |
378 * the current working directory, returns its full canonicalized path. | 378 String getFullPath(entry) { |
379 */ | 379 var path = new Path(_getPath(entry)); |
380 // TODO(rnystrom): Should this be async? | 380 |
381 String getFullPath(entry) => new File(_getPath(entry)).fullPathSync(); | 381 // Don't do anything if it's already absolute. |
| 382 if (path.isAbsolute) return path.toNativePath(); |
| 383 |
| 384 // Using Path.join here instead of File().fullPathSync() because the former |
| 385 // does not require an actual file to exist at that path. |
| 386 return new Path.fromNative(workingDir).join(path).toNativePath(); |
| 387 } |
382 | 388 |
383 // TODO(nweiz): make this configurable | 389 // TODO(nweiz): make this configurable |
384 /** | 390 /** |
385 * The amount of time in milliseconds to allow HTTP requests before assuming | 391 * The amount of time in milliseconds to allow HTTP requests before assuming |
386 * they've failed. | 392 * they've failed. |
387 */ | 393 */ |
388 final HTTP_TIMEOUT = 30 * 1000; | 394 final HTTP_TIMEOUT = 30 * 1000; |
389 | 395 |
390 /** | 396 /** |
391 * Opens an input stream for a HTTP GET request to [uri], which may be a | 397 * Opens an input stream for a HTTP GET request to [uri], which may be a |
(...skipping 369 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
761 return new Directory(entry); | 767 return new Directory(entry); |
762 } | 768 } |
763 | 769 |
764 /** | 770 /** |
765 * Gets a [Uri] for [uri], which can either already be one, or be a [String]. | 771 * Gets a [Uri] for [uri], which can either already be one, or be a [String]. |
766 */ | 772 */ |
767 Uri _getUri(uri) { | 773 Uri _getUri(uri) { |
768 if (uri is Uri) return uri; | 774 if (uri is Uri) return uri; |
769 return new Uri.fromString(uri); | 775 return new Uri.fromString(uri); |
770 } | 776 } |
OLD | NEW |