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

Unified Diff: sdk/lib/_internal/pub_generated/lib/src/package.dart

Issue 583853002: Use precompiled dependencies in pub. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Code review changes Created 6 years, 3 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
Index: sdk/lib/_internal/pub_generated/lib/src/package.dart
diff --git a/sdk/lib/_internal/pub_generated/lib/src/package.dart b/sdk/lib/_internal/pub_generated/lib/src/package.dart
index e306bcda026e7d9a89326d8b8aecb21fc249ce9c..6c04a731fa478607d34196590e13c3c1a58136ae 100644
--- a/sdk/lib/_internal/pub_generated/lib/src/package.dart
+++ b/sdk/lib/_internal/pub_generated/lib/src/package.dart
@@ -1,7 +1,8 @@
library pub.package;
import 'dart:io';
-import 'package:path/path.dart' as path;
+import 'package:path/path.dart' as p;
import 'package:barback/barback.dart';
+import 'barback/transformer_id.dart';
import 'io.dart';
import 'git.dart' as git;
import 'pubspec.dart';
@@ -18,7 +19,7 @@ class Package {
final String dir;
String get name {
if (pubspec.name != null) return pubspec.name;
- if (dir != null) return path.basename(dir);
+ if (dir != null) return p.basename(dir);
return null;
}
Version get version => pubspec.version;
@@ -41,17 +42,18 @@ class Package {
listFiles(
beneath: "bin",
recursive: false)).where(
- (executable) => path.extension(executable) == '.dart').map((executable) {
+ (executable) => p.extension(executable) == '.dart').map((executable) {
return new AssetId(
name,
- path.toUri(path.relative(executable, from: dir)).toString());
+ p.toUri(p.relative(executable, from: dir)).toString());
}).toList();
}
String get readmePath {
- var readmes = listDir(
- dir).map(path.basename).where((entry) => entry.contains(_README_REGEXP));
+ var readmes = listFiles(
+ recursive: false).map(
+ p.basename).where((entry) => entry.contains(_README_REGEXP));
if (readmes.isEmpty) return null;
- return path.join(dir, readmes.reduce((readme1, readme2) {
+ return p.join(dir, readmes.reduce((readme1, readme2) {
var extensions1 = ".".allMatches(readme1).length;
var extensions2 = ".".allMatches(readme2).length;
var comparison = extensions1.compareTo(extensions2);
@@ -64,6 +66,30 @@ class Package {
pubspec = new Pubspec.load(packageDir, sources, expectedName: name);
Package.inMemory(this.pubspec) : dir = null;
Package(this.pubspec, this.dir);
+ String path(String part1, [String part2, String part3, String part4,
+ String part5, String part6, String part7]) {
+ if (dir == null) {
+ throw new StateError(
+ "Package $name is in-memory and doesn't have paths " "on disk.");
+ }
+ return p.join(dir, part1, part2, part3, part4, part5, part6, part7);
+ }
+ String relative(String path) {
+ if (dir == null) {
+ throw new StateError(
+ "Package $name is in-memory and doesn't have paths " "on disk.");
+ }
+ return p.relative(path, from: dir);
+ }
+ String transformerPath(TransformerId id) {
+ if (id.package != name) {
+ throw new ArgumentError("Transformer $id isn't in package $name.");
+ }
+ if (id.path != null) return path('lib', p.fromUri('${id.path}.dart'));
+ var transformerPath = path('lib/transformer.dart');
+ if (fileExists(transformerPath)) return transformerPath;
+ return path('lib/$name.dart');
+ }
static final _WHITELISTED_FILES = const ['.htaccess'];
static final _blacklistedFiles = createFileFilter(['pubspec.lock']);
static final _blacklistedDirs = createDirectoryFilter(['packages']);
@@ -71,12 +97,12 @@ class Package {
if (beneath == null) {
beneath = dir;
} else {
- beneath = path.join(dir, beneath);
+ beneath = p.join(dir, beneath);
}
if (!dirExists(beneath)) return [];
var files;
- if (git.isInstalled && dirExists(path.join(dir, '.git'))) {
- var relativeBeneath = path.relative(beneath, from: dir);
+ if (git.isInstalled && dirExists(path('.git'))) {
+ var relativeBeneath = p.relative(beneath, from: dir);
files = git.runSync(
["ls-files", "--cached", "--others", "--exclude-standard", relativeBeneath],
workingDir: dir);

Powered by Google App Engine
This is Rietveld 408576698