Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1888)

Unified Diff: utils/pub/io.dart

Issue 12255016: Get rid of old redundant methods in io.dart. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Revise and update to latest. Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « utils/pub/entrypoint.dart ('k') | utils/pub/oauth2.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: utils/pub/io.dart
diff --git a/utils/pub/io.dart b/utils/pub/io.dart
index 65f0507f15a2168264ea18859ba1ae2d7e4125b3..c439384f4f90f5f0a682cea05e4036b886b5e548 100644
--- a/utils/pub/io.dart
+++ b/utils/pub/io.dart
@@ -33,27 +33,13 @@ String join(part1, [part2, part3, part4, part5, part6, part7, part8]) {
parts[6], parts[7]);
}
-/// Gets the basename, the file name without any leading directory path, for
-/// [file], which can either be a [String], [File], or [Directory].
-String basename(file) => path.basename(_getPath(file));
-
-/// Gets the the leading directory path for [file], which can either be a
-/// [String], [File], or [Directory].
-String dirname(file) => path.dirname(_getPath(file));
-
-/// Splits [entry] into its individual components.
-List<String> splitPath(entry) => path.split(_getPath(entry));
-
/// Returns whether or not [entry] is nested somewhere within [dir]. This just
/// performs a path comparison; it doesn't look at the actual filesystem.
-bool isBeneath(entry, dir) {
- var relative = relativeTo(entry, dir);
- return !path.isAbsolute(relative) && splitPath(relative)[0] != '..';
+bool isBeneath(String entry, String dir) {
+ var relative = path.relative(entry, from: dir);
+ return !path.isAbsolute(relative) && path.split(relative)[0] != '..';
}
-/// Returns the path to [target] from [base].
-String relativeTo(target, base) => path.relative(target, from: base);
-
/// Determines if [path], which can be a [String] file path, a [File], or a
/// [Directory] exists on the file system.
bool entryExists(path) => fileExists(path) || dirExists(path);
@@ -93,8 +79,7 @@ File writeTextFile(file, String contents, {dontLogContents: false}) {
return file..writeAsStringSync(contents);
}
-/// Deletes [file], which can be a [String] or a [File]. Returns a [Future]
-/// that completes when the deletion is done.
+/// Deletes [file], which can be a [String] or a [File].
File deleteFile(file) => _getFile(file)..delete();
/// Creates [file] (which can either be a [String] or a [File]), and writes
@@ -128,16 +113,16 @@ Future<File> createFileFromStream(Stream<List<int>> stream, path) {
/// Creates a directory [dir].
Directory createDir(dir) => _getDirectory(dir)..createSync();
-/// Ensures that [path] and all its parent directories exist. If they don't
+/// Ensures that [dirPath] and all its parent directories exist. If they don't
/// exist, creates them.
-Directory ensureDir(path) {
- path = _getPath(path);
+Directory ensureDir(dirPath) {
+ dirPath = _getPath(dirPath);
- log.fine("Ensuring directory $path exists.");
- var dir = new Directory(path);
- if (path == '.' || dirExists(path)) return dir;
+ log.fine("Ensuring directory $dirPath exists.");
+ var dir = new Directory(dirPath);
+ if (dirPath == '.' || dirExists(dirPath)) return dir;
- ensureDir(dirname(path));
+ ensureDir(path.dirname(dirPath));
try {
createDir(dir);
@@ -155,12 +140,12 @@ Directory ensureDir(path) {
/// Creates a temp directory whose name will be based on [dir] with a unique
/// suffix appended to it. If [dir] is not provided, a temp directory will be
-/// created in a platform-dependent temporary location. Returns a [Future] that
-/// completes when the directory is created.
-Directory createTempDir([dir = '']) {
+/// created in a platform-dependent temporary location. Returns the path of the
+/// created directory.
+String createTempDir([dir = '']) {
var tempDir = _getDirectory(dir).createTempSync();
log.io("Created temp directory ${tempDir.path}");
- return tempDir;
+ return tempDir.path;
}
/// Asynchronously recursively deletes [dir], which can be a [String] or a
@@ -218,8 +203,8 @@ Future<List<String>> listDir(dir,
var children = [];
lister.onError = (error) => completer.completeError(error, stackTrace);
lister.onDir = (file) {
- if (!includeHiddenFiles && basename(file).startsWith('.')) return;
- file = join(dir, basename(file));
+ if (!includeHiddenFiles && path.basename(file).startsWith('.')) return;
+ file = join(dir, path.basename(file));
contents.add(file);
// TODO(nweiz): don't manually recurse once issue 7358 is fixed. Note that
// once we remove the manual recursion, we'll need to explicitly filter
@@ -230,8 +215,8 @@ Future<List<String>> listDir(dir,
};
lister.onFile = (file) {
- if (!includeHiddenFiles && basename(file).startsWith('.')) return;
- contents.add(join(dir, basename(file)));
+ if (!includeHiddenFiles && path.basename(file).startsWith('.')) return;
+ contents.add(join(dir, path.basename(file)));
};
return completer.future.then((contents) {
@@ -361,13 +346,6 @@ Future<File> createPackageSymlink(String name, from, to,
});
}
-/// Given [entry] which may be a [String], [File], or [Directory] relative to
-/// the current working directory, returns its full canonicalized path.
-String getFullPath(entry) => path.absolute(_getPath(entry));
-
-/// Returns whether or not [entry] is an absolute path.
-bool isAbsolute(entry) => path.isAbsolute(_getPath(entry));
-
/// Resolves [target] relative to the location of pub.dart.
String relativeToPub(String target) {
var scriptPath = new File(new Options().script).fullPathSync();
@@ -375,10 +353,11 @@ String relativeToPub(String target) {
// Walk up until we hit the "util(s)" directory. This lets us figure out where
// we are if this function is called from pub.dart, or one of the tests,
// which also live under "utils", or from the SDK where pub is in "util".
- var utilDir = dirname(scriptPath);
- while (basename(utilDir) != 'utils' && basename(utilDir) != 'util') {
- if (basename(utilDir) == '') throw 'Could not find path to pub.';
- utilDir = dirname(utilDir);
+ var utilDir = path.dirname(scriptPath);
+ while (path.basename(utilDir) != 'utils' &&
+ path.basename(utilDir) != 'util') {
+ if (path.basename(utilDir) == '') throw 'Could not find path to pub.';
+ utilDir = path.dirname(utilDir);
}
return path.normalize(join(utilDir, 'pub', target));
@@ -728,7 +707,7 @@ Future timeout(Future input, int milliseconds, String description) {
Future withTempDir(Future fn(String path)) {
return defer(() {
var tempDir = createTempDir();
- return fn(tempDir.path).whenComplete(() {
+ return fn(tempDir).whenComplete(() {
return deleteDir(tempDir);
});
});
@@ -835,13 +814,13 @@ ByteStream createTarGz(List contents, {baseDir}) {
var controller = new StreamController<List<int>>();
if (baseDir == null) baseDir = path.current;
- baseDir = getFullPath(baseDir);
+ baseDir = path.absolute(baseDir);
contents = contents.map((entry) {
- entry = getFullPath(entry);
+ entry = path.absolute(_getPath(entry));
if (!isBeneath(entry, baseDir)) {
throw 'Entry $entry is not inside $baseDir.';
}
- return relativeTo(entry, baseDir);
+ return path.relative(entry, from: baseDir);
}).toList();
if (Platform.operatingSystem != "windows") {
« no previous file with comments | « utils/pub/entrypoint.dart ('k') | utils/pub/oauth2.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698