Join paths before converting to URI (#1879)
Fixes #1878
Rename executableIds since they are paths now
diff --git a/lib/src/command/deps.dart b/lib/src/command/deps.dart
index 7e3afac..99a6de5 100644
--- a/lib/src/command/deps.dart
+++ b/lib/src/command/deps.dart
@@ -275,7 +275,7 @@
/// Lists all Dart files in the `bin` directory of the [package].
///
/// Returns file names without extensions.
- List<String> _getExecutablesFor(Package package) => package.executableIds
+ List<String> _getExecutablesFor(Package package) => package.executablePaths
.where((e) => _isDartExecutable(p.absolute(package.dir, e)))
.map((e) => p.basenameWithoutExtension(e));
diff --git a/lib/src/entrypoint.dart b/lib/src/entrypoint.dart
index a05550c..b44cc06 100644
--- a/lib/src/entrypoint.dart
+++ b/lib/src/entrypoint.dart
@@ -286,12 +286,10 @@
var dir = p.join(_snapshotPath, package);
cleanDir(dir);
return waitAndPrintErrors(executables[package].map((path) {
- var url = p.toUri(packageGraph.packages[package].dir);
- url = url.replace(path: p.url.join(url.path, path));
- return dart.snapshot(
- url, p.join(dir, p.url.basename(path) + '.snapshot'),
+ var url = p.toUri(p.join(packageGraph.packages[package].dir, path));
+ return dart.snapshot(url, p.join(dir, p.basename(path) + '.snapshot'),
packagesFile: p.toUri(packagesFile),
- name: '$package:${p.url.basenameWithoutExtension(path)}');
+ name: '$package:${p.basenameWithoutExtension(path)}');
}));
}));
}
@@ -343,7 +341,7 @@
if (!dirExists(binDir)) return [];
if (packageGraph.isPackageMutable(packageName)) return [];
- var executables = package.executableIds;
+ var executables = package.executablePaths;
// If any executables don't exist, recompile all executables.
//
@@ -353,7 +351,7 @@
// some executables do exist and some do not, the directory is corrupted and
// it's good to start from scratch anyway.
var executablesExist = executables.every((executable) => fileExists(p.join(
- _snapshotPath, packageName, "${p.url.basename(executable)}.snapshot")));
+ _snapshotPath, packageName, "${p.basename(executable)}.snapshot")));
if (!executablesExist) return executables;
// Otherwise, we don't need to recompile.
diff --git a/lib/src/global_packages.dart b/lib/src/global_packages.dart
index 173756d..84cb087 100644
--- a/lib/src/global_packages.dart
+++ b/lib/src/global_packages.dart
@@ -230,10 +230,9 @@
// possible. This is faster and produces better error messages.
var package = entrypoint.packageGraph.packages[packageName];
var precompiled = {};
- await waitAndPrintErrors(package.executableIds.map((path) async {
- var url = p.toUri(package.dir);
- url = url.replace(path: p.url.join(url.path, path));
- var basename = p.url.basename(path);
+ await waitAndPrintErrors(package.executablePaths.map((path) async {
+ var url = p.toUri(p.join(package.dir, path));
+ var basename = p.basename(path);
var snapshotPath = p.join(binDir, '$basename.snapshot');
await dart.snapshot(url, snapshotPath,
packagesFile: p.toUri(_getPackagesFilePath(package.name)),
diff --git a/lib/src/package.dart b/lib/src/package.dart
index 254028d..66706f7 100644
--- a/lib/src/package.dart
+++ b/lib/src/package.dart
@@ -69,7 +69,7 @@
/// Returns a list of asset ids for all Dart executables in this package's bin
/// directory.
- List<String> get executableIds {
+ List<String> get executablePaths {
return ordered(listFiles(beneath: "bin", recursive: false))
.where((executable) => p.extension(executable) == '.dart')
.map((executable) => p.relative(executable, from: dir))