| Index: utils/pub/path.dart
|
| diff --git a/utils/pub/path.dart b/utils/pub/path.dart
|
| index d803fd17075726750cd3c559d4731ff6478af52b..8f9f9a49b89afa9d5e879ec796ced39ff738d5b9 100644
|
| --- a/utils/pub/path.dart
|
| +++ b/utils/pub/path.dart
|
| @@ -110,6 +110,19 @@ String normalize(String path) => _builder.normalize(path);
|
| /// path.relative(r'D:\other'); // -> 'D:\other'
|
| String relative(String path) => _builder.relative(path);
|
|
|
| +/// Splits [path] along separators and returns a [List] of the parts. The
|
| +/// path will *not* be normalized before splitting.
|
| +///
|
| +/// path.split('a/b/c.txt'); // -> ['a', 'b', 'c.txt']
|
| +/// path.split('a/../c'); // -> ['a', '..', 'c']
|
| +///
|
| +/// If [path] is absolute, the root prefix will be included in the first
|
| +/// part.
|
| +///
|
| +/// path.split('/a/b/c.txt'); // -> ['/a', 'b', 'c.txt']
|
| +/// path.split(r'C:\a\b\c.txt'); // -> [r'C:\a', 'b', 'c.txt']
|
| +List<String> split(String path) => _builder.split(path);
|
| +
|
| /// Removes a trailing extension from the last part of [path].
|
| ///
|
| /// withoutExtension('path/to/foo.dart'); // -> 'path/to/foo'
|
| @@ -329,6 +342,29 @@ class Builder {
|
| return pathParsed.toString();
|
| }
|
|
|
| + /// Splits [path] along separators and returns a [List] of the parts. The
|
| + /// path will *not* be normalized before splitting.
|
| + ///
|
| + /// builder.split('a/b/c.txt'); // -> ['a', 'b', 'c.txt']
|
| + /// builder.split('a/../c'); // -> ['a', '..', 'c']
|
| + ///
|
| + /// If [path] is absolute, the root prefix will be included in the first
|
| + /// part.
|
| + ///
|
| + /// builder.split('/a/b/c.txt'); // -> ['/a', 'b', 'c.txt']
|
| + /// builder.split(r'C:\a\b\c.txt'); // -> [r'C:\a', 'b', 'c.txt']
|
| + List<String> split(String path) {
|
| + var parsed = _parse(path);
|
| +
|
| + // Include the root prefix in the first part.
|
| + if (parsed.root != null) {
|
| + if (parsed.parts.isEmpty) return [parsed.root];
|
| + parsed.parts[0] = '${parsed.root}${parsed.parts[0]}';
|
| + }
|
| +
|
| + return parsed.parts.filter(((part) => part != ''));
|
| + }
|
| +
|
| /// Removes a trailing extension from the last part of [path].
|
| ///
|
| /// builder.withoutExtension('path/to/foo.dart'); // -> 'path/to/foo'
|
|
|