Chromium Code Reviews

Side by Side Diff: lib/src/executable.dart

Issue 1236973002: Pass an absolute package root to the VM. (Closed) Base URL: git@github.com:dart-lang/pub.git@master
Patch Set: Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff |
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, 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 library pub.executable; 5 library pub.executable;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 import 'dart:io'; 8 import 'dart:io';
9 9
10 import 'package:barback/barback.dart'; 10 import 'package:barback/barback.dart';
(...skipping 97 matching lines...)
108 } 108 }
109 log.error("$message."); 109 log.error("$message.");
110 return exit_codes.NO_INPUT; 110 return exit_codes.NO_INPUT;
111 } 111 }
112 112
113 // If we're running an executable directly from the filesystem, make sure that 113 // If we're running an executable directly from the filesystem, make sure that
114 // it knows where to load the packages. If it's a dependency's executable, for 114 // it knows where to load the packages. If it's a dependency's executable, for
115 // example, it may not have the right packages directory itself. 115 // example, it may not have the right packages directory itself.
116 if (executableUrl.scheme == 'file' || executableUrl.scheme == '') { 116 if (executableUrl.scheme == 'file' || executableUrl.scheme == '') {
117 // TODO(nweiz): use a .packages file once sdk#23369 is fixed. 117 // TODO(nweiz): use a .packages file once sdk#23369 is fixed.
118 vmArgs.add('--package-root=${p.toUri(entrypoint.packagesDir)}'); 118
119 /// We use an absolute path here not because the VM insists but because it's
120 /// helpful for the subprocess to be able to spawn Dart with
121 /// Platform.executableArguments and have that work regardless of the
122 /// working directory.
Bob Nystrom 2015/07/14 17:41:19 "//" instead of "///".
nweiz 2015/07/14 19:57:54 Done.
123 vmArgs.add('--package-root=${p.toUri(p.absolute(entrypoint.packagesDir))}');
119 } 124 }
120 125
121 vmArgs.add(executableUrl.toString()); 126 vmArgs.add(executableUrl.toString());
122 vmArgs.addAll(args); 127 vmArgs.addAll(args);
123 128
124 var process = await Process.start(Platform.executable, vmArgs); 129 var process = await Process.start(Platform.executable, vmArgs);
125 130
126 _forwardSignals(process); 131 _forwardSignals(process);
127 132
128 // Note: we're not using process.std___.pipe(std___) here because 133 // Note: we're not using process.std___.pipe(std___) here because
(...skipping 133 matching lines...)
262 } 267 }
263 268
264 /// Runs the executable snapshot at [snapshotPath]. 269 /// Runs the executable snapshot at [snapshotPath].
265 Future<int> _runCachedExecutable(Entrypoint entrypoint, String snapshotPath, 270 Future<int> _runCachedExecutable(Entrypoint entrypoint, String snapshotPath,
266 List<String> args) { 271 List<String> args) {
267 return runSnapshot(snapshotPath, args, checked: true, recompile: () { 272 return runSnapshot(snapshotPath, args, checked: true, recompile: () {
268 log.fine("Precompiled executable is out of date."); 273 log.fine("Precompiled executable is out of date.");
269 return entrypoint.precompileExecutables(); 274 return entrypoint.precompileExecutables();
270 }); 275 });
271 } 276 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine